<?php

declare(strict_types=1);

namespace App\Administration\Application\Service\Import;

use function array_slice;
use function count;

/**
 * Résultat du parsing d'un fichier d'import.
 *
 * Contient les colonnes détectées et les données brutes extraites.
 */
final readonly class FileParseResult
{
    /**
     * @param list<string>                $columns Noms des colonnes détectées
     * @param list<array<string, string>> $rows    Données brutes (colonne → valeur)
     */
    public function __construct(
        public array $columns,
        public array $rows,
    ) {
    }

    public function totalRows(): int
    {
        return count($this->rows);
    }

    /**
     * @return list<array<string, string>>
     */
    public function preview(int $limit = 5): array
    {
        return array_slice($this->rows, 0, $limit);
    }
}
