<?php

declare(strict_types=1);

namespace Seka\Portal\Modul\Statistiky\Repositories\Eloquent\Transformers\Summary\DataTables\Technik\PocetKontrolPodlaStavu;

use Seka\Portal\Modul\Statistiky\Entities\Zaznam\Zaznam;
use Seka\Portal\Modul\Statistiky\Repositories\Eloquent\Transformers\Summary\DataTables\DataTableBuilderContract;
use Seka\Portal\Modul\Statistiky\Repositories\Eloquent\Transformers\Summary\DataTables\DataTableContract;

/**
 * Class PocetKontrolPodlaStavuDataTableBuilder
 *
 * @package Seka\Portal\Modul\Statistiky\Repositories\Eloquent\Transformers\Summary\DataTables\Technik\PocetKontrolPodlaStavu
 */
final class PocetKontrolPodlaStavuDataTableBuilder implements DataTableBuilderContract
{
    /**
     * @param \Seka\Portal\Modul\Statistiky\Repositories\Eloquent\Transformers\Summary\DataTables\DataTableRowContract[] $rows
     *
     * @return \Seka\Portal\Modul\Statistiky\Repositories\Eloquent\Transformers\Summary\DataTables\DataTableContract
     */
    public static function buildWithRows(array $rows = []): DataTableContract
    {
        $dataTable = new PocetKontrolPodlaStavuDataTable();

        if (!empty($rows)) {
            foreach ($rows as $row) {
                if (!$row instanceof PocetKontrolPodlaStavuDataTableRow) continue;

                $dataTable->addRow($row);
            }
        }

        return $dataTable;
    }

    /**
     * @param \Seka\Portal\Modul\Statistiky\Entities\Zaznam\Zaznam $model
     *
     * @return \Seka\Portal\Modul\Statistiky\Repositories\Eloquent\Transformers\Summary\DataTables\DataTableContract
     */
    public static function build(Zaznam $model): DataTableContract
    {
        return new PocetKontrolPodlaStavuDataTable();
    }
}
