<?php

namespace App\Services;

use App\Entities\CEP\CEP;
use App\Entities\Endereco\Endereco;
use App\Entities\Perfil\Perfil;
use App\Entities\Pessoa\Pessoa;
use App\Entities\Usuario\Usuario;

class PessoaService extends Service {

	public function getPessoaFromData(array $data): Pessoa {

		$perfil = Perfil::builder()->setId( $data ['perfil'] )
			->build();
		$usuario = Usuario::builder()->setId( $data ['id_usuario'] )
			->setEmail( $data ['email'] )
			->setsenha( $this->cript_password( $data ['senha'] ) )
			->setAtivo( isset( $data ['ativo'] ) ? $data ['ativo'] : 1 )
			->setPerfil( $perfil )
			->setEmailVerificado( $data ['email_verificado_em'] )
			->build();
		$cep = CEP::builder()->setCep( $data ['cep'] )
			->setCidade( $data ['cidade'] )
			->setEstado( $data ['estado'] )
			->setLogradouro( $data ['logradouro'] )
			->setBairro( $data ['bairro'] )
			->build();
		$endereco = Endereco::builder()->setId( $data ['id_endereco'] )
			->setCep( $cep )
			->setNumero( $data ['numero'] )
			->setComplemento( $data ['complemento'] )
			->setReferencias( $data ['referencias'] )
			->build();
		$pessoa = Pessoa::builder()->setId( $data ['id_PESSOA'] )
			->setUsuario( $usuario )
			->setEndereco( $endereco )
			->setCpf( $data ['cpf'] )
			->setRG( $data ['rg'] )
			->setGenero( $data ['genero'] )
			->setNome( $data ['nome'] )
			->setDataNascimento( $data ['data_nascimento'] )
			->setTelefone1( $data ['telefone_1'] )
			->setTelefone2( $data ['telefone_2'] )
			->build();
		return $pessoa;

	}

}