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; }
}