<?php namespace App\Mappers;



use App\Entities\GaleriaClassificacao\GaleriaClassificacao;
use App\Services\JWTService;
use App\Utils\Collections\GeneralCollection;
use App\ViewModels\GaleriaClassificacao\GaleriaClassificacaoDetailsViewModel\GaleriaClassificacaoDetailsViewModel;
use App\ViewModels\GaleriaClassificacao\GaleriaClassificacaoRegistrationViewModel\GaleriaClassificacaoRegistrationViewModel;
use App\ViewModels\GaleriaClassificacao\GaleriaClassificacaoUpdateViewModel\GaleriaClassificacaoUpdateViewModel;

class GaleriaClassificacaoMapper
{
    public static function getGaleriaClassificacaoRegistrationVMFromArray (array $data) : GaleriaClassificacaoRegistrationViewModel {
        return GaleriaClassificacaoRegistrationViewModel::builder()
            ->setAntes($data['antes'])
            ->setDepois($data['depois'])
            ->setDescricao($data['descricao'])
            ->build();
    }
    public static function getGaleriaClassificacaoFromGaleriaClassificacaoRegistrationVM (GaleriaClassificacaoRegistrationViewModel $exame_registration_vm) : GaleriaClassificacao {
        return GaleriaClassificacao::builder()
            ->setAntes($exame_registration_vm->getAntes())
            ->setDepois($exame_registration_vm->getDepois())
            ->setDescricao($exame_registration_vm->getDescricao())
            ->build();
    }

    public static function getGaleriaClassificacaoDetailsVMFromArray (array $classificacao) : GaleriaClassificacaoDetailsViewModel {
        $get_file_antes = "";
        $get_file_depois = "";

        return GaleriaClassificacaoDetailsViewModel::builder()
            ->setId($classificacao['id'])
            ->setAntes($classificacao['antes'])
            ->setDepois($classificacao['depois'])
            ->setDescricaoClassificacao($classificacao['descricao_classificacao'])
            ->setImagemAntes($get_file_antes)
            ->setDescricaoAntes($classificacao['descricao_antes'])
            ->setImagemDepois($get_file_depois)
            ->setDescricaoDepois($classificacao['descricao_depois'])
            ->build();
    }

    public static function getGaleriaClassificacaoDetailsVMCollectionFromArray (array $response_array) : GeneralCollection {
        $exame_details_vm_collection = new GeneralCollection();
        foreach ($response_array as $row) {
            $exame_details_vm = GaleriaClassificacaoMapper::getGaleriaClassificacaoDetailsVMFromArray($row);
            $exame_details_vm_collection->push($exame_details_vm);
        }
        return $exame_details_vm_collection;
    }

    public static function getGaleriaClassificacaosDetailsArrayFromGaleriaClassificacaoDetailsVMCollection (GeneralCollection $paciente_details_vm_collection) : array {
        return $paciente_details_vm_collection->toArray();
    }

    public static function getGaleriaClassificacaoUpdateVMFromArray(array $data) : GaleriaClassificacaoUpdateViewModel {
        $exame_update_vm = new GaleriaClassificacaoUpdateViewModel ();
        if (isset($data['nome'])) {
            $exame_update_vm->setAntes($data['antes']);
            $exame_update_vm->setDepois($data['depois']);
        }
        return $exame_update_vm;
    }

    public static function getGaleriaClassificacaoFromGaleriaClassificacaoUpdateVM (GaleriaClassificacaoUpdateViewModel $exame_update_vm) : GaleriaClassificacao {
        $exame = new GaleriaClassificacao();
        if ($exame_update_vm->getAntes()) {
            $exame->setAntes($exame_update_vm->getAntes());
        }
        if ($exame_update_vm->getDepois()) {
            $exame->setDepois($exame_update_vm->getDepois());
        }
        return $exame;

    }
}