<?php

class Seguro_Factory_Beneficiario
{
    public static function createFromDto(Seguro_Dto_PropostaBeneficiario $dto): Seguro_Entity_PropostaBeneficiario
    {
        $banco = new Sistema_Entity_Banco($dto->nomeBanco);
        $agencia = new Sistema_ValueObject_Agencia($banco);
        $endereco = new Seguro_ValueObject_Beneficiario_Endereco(
            $dto->bairro,
            $dto->cep,
            $dto->complemento,
            $dto->logradouro,
            $dto->municipio,
            $dto->numero,
            $dto->uf
        );
        $beneficiario = new Seguro_Entity_Beneficiario(
            $dto->nome,
            $dto->nomeSocial,
            $dto->cpfCnpj,
            $endereco
        );

        return new Seguro_Entity_PropostaBeneficiario($dto->tipoConta, $agencia, $beneficiario);
    }
}