<?php

namespace App\Mappers;

use App\Services\JWT\UsuarioLogado;
use App\Utils\DateUtils;
use App\ViewModels\Voucher\VoucherChangeStatusViewModel\VoucherChangeStatusViewModel;
use App\ViewModels\Voucher\VoucherRegistrationViewModel\VoucherRegistrationViewModel;

class VoucherMapper {

	public static function getVoucheRegistrationViewModelFromArray(array $dados): VoucherRegistrationViewModel {

		$usr = UsuarioLogado::getUsuarioId();
		$data_c = DateUtils::today();
		$hora_c = DateUtils::now_time();

		$lojaResistration = VoucherRegistrationViewModel::builder()->setIdTipo( $dados ['id_tipo'] )
			->setIdPet( $dados ['id_pet'] )
			->setIdCompra( $dados ['id_compra'] )
			->setIdCompraItem( $dados ['id_compra_item'] )
			->setIdUsuario( $dados ['id_usuario'] )
			->setIdStatus( $dados ['id_status'] ?? 1)
			->setSerial( $dados ['serial'] )
			->setDataVencimento( $dados ['data_vencimento'] ?? '1900-01-01')
			->setCriadoPor( $usr )
			->setDataCriacao( $data_c )
			->setHoraCriacao( $hora_c )
			->build();

		return $lojaResistration;

	}

	public static function getVoucherChangeStatusViewModelFromArray(array $dados): VoucherChangeStatusViewModel {

		$usr = UsuarioLogado::getUsuarioId();
		$data_c = DateUtils::today();
		$hora_c = DateUtils::now_time();

		$lojaResistration = VoucherChangeStatusViewModel::builder()->setId( $dados ['id'] )
			->setIdCompra( $dados ['id_compra'] )
			->setIdStatus( $dados ['id_status'] )
			->setAlteradoPor( $usr )
			->setDataAlteracao( $data_c )
			->setHoraAlteracao( $hora_c )
			->build();

		return $lojaResistration;

	}

}

