<?php

namespace App\Mappers;

use App\ViewModels\Orcamento\OrcamentoClienteRegistrationViewModel\OrcamentoClienteRegistrationViewModel;
use App\Utils\DateUtils;
use App\Services\JWT\UsuarioLogado;
use App\Utils\MathUtils;
use App\ViewModels\Orcamento\OrcamentoClienteUpdateViewModel\OrcamentoClienteUpdateViewModel;

class OrcamentoClienteMapper {

	public static function getOrcamentoClienteRegistrationVMFromArray(array $data): OrcamentoClienteRegistrationViewModel {

		$dataCriacao = DateUtils::today();
		$horaCriacao = DateUtils::now_time();
		$criadoPor = UsuarioLogado::getUsuarioId();

		return OrcamentoClienteRegistrationViewModel::builder()->setIdStatus( 1 )
			->setIdUnidade( $data ['id_unidade'] )
			->setIdCliente( $data ['id_cliente'] )
			->setIdPet( $data ['id_pet'] )
			->setValor( MathUtils::getDecimalFormatFromFloat( floatval( $data ['valor'] ) ) )
			->setValidade( $data ['validade'] )
			->setCriadoPor( $criadoPor )
			->setDataCriacao( $dataCriacao )
			->setHoraCriacao( $horaCriacao )
			->build();

	}

	public static function getOrcamentoClienteUpdateVMFromArray(array $data): OrcamentoClienteUpdateViewModel {
		
		$dataAtualizacao = DateUtils::today();
		$horaAtualizacao = DateUtils::now_time();
		$atualizadoPor = UsuarioLogado::getUsuarioId();
		
		return OrcamentoClienteUpdateViewModel::builder()->setIdStatus( 1 )
		->setId($data ['id_orcamento'])
		->setIdUnidade( $data ['id_unidade'] )
		->setIdCliente( $data ['id_cliente'] )
		->setIdPet( $data ['id_pet'] )
		->setValor( MathUtils::getDecimalFormatFromFloat( floatval( $data ['valor'] ) ) )
		->setValidade( $data ['validade'] )
		->setAtualizadoPor($atualizadoPor)
		->setDataAtualizacao( $dataAtualizacao )
		->setHoraAtualizacao( $horaAtualizacao )
		->build();
		
	}
	
		
}

