namespace TakeoutSaaS.Application.Dictionary.Models;

/// <summary>
/// 字典导入结果 DTO。
/// </summary>
public sealed class DictionaryImportResultDto
{
    /// <summary>
    /// 成功数量。
    /// </summary>
    public int SuccessCount { get; init; }

    /// <summary>
    /// 跳过数量。
    /// </summary>
    public int SkipCount { get; init; }

    /// <summary>
    /// 错误数量。
    /// </summary>
    public int ErrorCount { get; init; }

    /// <summary>
    /// 错误列表。
    /// </summary>
    public IReadOnlyList<ImportError> Errors { get; init; } = Array.Empty<ImportError>();

    /// <summary>
    /// 处理耗时。
    /// </summary>
    public TimeSpan Duration { get; init; }

    /// <summary>
    /// 导入错误详情。
    /// </summary>
    public sealed class ImportError
    {
        /// <summary>
        /// 行号。
        /// </summary>
        public int RowNumber { get; init; }

        /// <summary>
        /// 字段名。
        /// </summary>
        public string Field { get; init; } = string.Empty;

        /// <summary>
        /// 错误信息。
        /// </summary>
        public string Message { get; init; } = string.Empty;
    }
}
