namespace TakeoutSaaS.Application.App.Stores.Dto;

/// <summary>
/// 资质完整性检查结果。
/// </summary>
public sealed class StoreQualificationCheckResultDto
{
    /// <summary>
    /// 是否完整。
    /// </summary>
    public bool IsComplete { get; init; }

    /// <summary>
    /// 是否允许提交审核。
    /// </summary>
    public bool CanSubmitAudit { get; init; }

    /// <summary>
    /// 必要资质清单。
    /// </summary>
    public IReadOnlyList<StoreQualificationRequirementDto> RequiredTypes { get; init; } = [];

    /// <summary>
    /// 即将过期数量。
    /// </summary>
    public int ExpiringSoonCount { get; init; }

    /// <summary>
    /// 已过期数量。
    /// </summary>
    public int ExpiredCount { get; init; }

    /// <summary>
    /// 缺失类型提示。
    /// </summary>
    public IReadOnlyList<string> MissingTypes { get; init; } = [];

    /// <summary>
    /// 警告提示。
    /// </summary>
    public IReadOnlyList<string> Warnings { get; init; } = [];
}
