using System.ComponentModel.DataAnnotations; using System.Text.Json; using Tiku.Application.Tenancy; using Tiku.Domain.Common; namespace Tiku.Api.Contracts; /// /// 保存租户前端配置草稿请求。 /// public sealed class SaveTenantFrontendConfigDraftDto { /// /// 品牌配置。 /// public JsonElement Branding { get; set; } = JsonDefaults.Object(); /// /// 主题配置。 /// public JsonElement Theme { get; set; } = JsonDefaults.Object(); /// /// 功能配置。 /// public JsonElement Features { get; set; } = JsonDefaults.Object(); /// /// 导航配置。 /// public JsonElement Navigation { get; set; } = JsonDefaults.Array(); /// /// 首页模块配置。 /// public JsonElement HomeModules { get; set; } = JsonDefaults.Array(); public TenantFrontendConfigDraft ToDraft() => new( Branding, Theme, Features, Navigation, HomeModules); } /// /// 发布租户前端配置请求。 /// public sealed class PublishTenantFrontendConfigDto { /// /// 期望配置版本。 /// [Range(1, int.MaxValue)] public int ExpectedVersion { get; set; } }