<?php

declare(strict_types=1);

namespace App\Administration\Domain\Repository;

use App\Administration\Domain\Model\Import\KnownImportFormat;
use App\Administration\Domain\Model\Import\StudentImportField;
use App\Shared\Domain\Tenant\TenantId;

/**
 * Stocke le dernier mapping utilisé par tenant et format
 * pour le suggérer lors des imports futurs.
 *
 * @see T3.3: Sauvegarde mapping pour réutilisation future
 */
interface SavedColumnMappingRepository
{
    /**
     * @param array<string, StudentImportField> $mapping
     */
    public function save(TenantId $tenantId, KnownImportFormat $format, array $mapping): void;

    /**
     * @return array<string, StudentImportField>|null
     */
    public function findByTenantAndFormat(TenantId $tenantId, KnownImportFormat $format): ?array;
}
