<?php

declare(strict_types=1);

namespace App\Business\DataImport\Contracts;

use App\Business\DataImport\DataImportExecutionResult;
use App\Business\DataImport\DataImportPrecheckResult;
use App\Business\DataImport\DataImportRow;
use App\Business\DataImport\Enums\DataImportType;
use App\Models\DberpDataImportBatch;

interface DataImportHandler
{
    public function importType(): DataImportType;

    /**
     * @param  list<DataImportRow>  $rows
     */
    public function precheckRows(array $rows): DataImportPrecheckResult;

    public function execute(DberpDataImportBatch $batch): DataImportExecutionResult;
}
