namespace TakeoutSaaS.Application.App.Personal.Dto;

/// <summary>
/// 个人中心总览 DTO。
/// </summary>
public sealed class PersonalOverviewDto
{
    /// <summary>
    /// 请求追踪标识。
    /// </summary>
    public string RequestId { get; init; } = string.Empty;

    /// <summary>
    /// 总体状态：success / partial_success / failure。
    /// </summary>
    public string OverallStatus { get; init; } = "success";

    /// <summary>
    /// 账号信息。
    /// </summary>
    public PersonalAccountProfileDto? AccountProfile { get; init; }

    /// <summary>
    /// 安全信息。
    /// </summary>
    public PersonalSecuritySnapshotDto? SecuritySnapshot { get; init; }

    /// <summary>
    /// 角色权限概览。
    /// </summary>
    public PersonalRolePermissionSummaryDto? RoleSummary { get; init; }

    /// <summary>
    /// 归属信息。
    /// </summary>
    public PersonalTenantAffiliationDto? TenantAffiliation { get; init; }

    /// <summary>
    /// 配额摘要（可选）。
    /// </summary>
    public PersonalQuotaUsageSummaryDto? QuotaSummary { get; init; }

    /// <summary>
    /// 子模块执行状态。
    /// </summary>
    public IReadOnlyList<PersonalModuleStatusDto> ModuleStatuses { get; init; } = [];
}
