<?php

namespace App\Mappers;

use App\Services\JWT\UsuarioLogado;
use App\Utils\DateUtils;
use App\ViewModels\ProdutoServico\ProdutoRegistrationViewModel\ProdutoRegistrationViewModel;
use App\ViewModels\ProdutoServico\ProdutoChangeStatusViewModel\ProdutoChangeStatusViewModel;

class ProdutoMapper {

	public static function getProdutoRegistrationViewModelFromArray(array $dados): ProdutoRegistrationViewModel {

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

		$lojaResistration = ProdutoRegistrationViewModel::builder()->setNome( $dados ['nome'] )
			->setDescricao( $dados ['descricao'] )
			->setIdUnidade( $dados ['id_unidade'] )
			->setIdTipo( $dados ['id_tipo'] )
			->setIdStatus( $dados ['id_status'] )
			->setValor( $dados ['valor'] ?? 0.00 )
			->setCriadoPor( $usr )
			->setDataCriacao( $data_c )
			->setHoraCriacao( $hora_c )
			->setDataAlteracao( '1900-01-01' )
			->setHoraAlteracao( '00:00:00' )
			->build();

		return $lojaResistration;

	}

	public static function getProdutoChangeStatusViewModelFromArray(array $dados): ProdutoChangeStatusViewModel {

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

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

		return $lojaResistration;

	}

}

