<?php

class Seguro_Dto_ItemSeguradoCar
{
    private ?string $car = '';
    private ?bool $isManual = false;
    private ?bool $isSelecionado = false;
    private ?int $idUsuarioCriacaoCar;
    private ?int $idUsuarioAlteracaoCar;

    public function deParaAtributos(array $dados): Seguro_Dto_ItemSeguradoCar
    {
        $alias = [
            'ds_car' => 'car',
            'fl_manual' => 'isManual',
            'fl_selecionado' => 'isSelecionado',
            'id_usuario_criacao_car' => 'idUsuarioCriacaoCar',
            'id_usuario_alteracao_car' => 'idUsuarioAlteracaoCar'
        ];

        foreach ($dados as $coluna => $valor) {
            if (!array_key_exists($coluna, $alias)) {
                continue;
            }

            $this->{$alias[$coluna]} = $valor;
        }
        
        return $this;
    }

    public function getCar(): ?string
    {
        return $this->car;
    }

    public function isManual(): ?bool
    {
        return $this->isManual;
    }

    public function isSelecionado(): ?bool
    {
        return $this->isSelecionado;
    }

    public function getIdUsuario(): ?int
    {
        return $this->idUsuarioAlteracaoCar ? $this->idUsuarioAlteracaoCar : $this->idUsuarioCriacaoCar;
    }

    public function toArray(): array
    {
        return [
            'ds_car' => $this->getCar(),
            'fl_manual' => $this->isManual(),
            'id_usuario' => $this->getIdUsuario()
        ];
    }
}