<?php

class Seguro_Entity_PropostaBeneficiario
{
    private string $tipoConta;
    private Sistema_ValueObject_Agencia $agencia;
    private Seguro_Entity_Beneficiario $beneficiario;

    public function __construct(
        string                      $tipoConta,
        Sistema_ValueObject_Agencia $agencia,
        Seguro_Entity_Beneficiario  $beneficiario
    )
    {
        $this->tipoConta = $tipoConta;
        $this->agencia = $agencia;
        $this->beneficiario = $beneficiario;
    }

    public function getBeneficiario(): Seguro_Entity_Beneficiario
    {
        return $this->beneficiario;
    }

    public function isBanco(): bool
    {
        return strtoupper($this->tipoConta) === 'S';
    }

    public function getNomeBeneficiarioImpressao(): string
    {
        return !$this->isBanco() ? $this->beneficiario->getNome() : $this->agencia->getBanco()->getNome();
    }

    public function getEnderecoBeneficiario(): Seguro_ValueObject_Beneficiario_Endereco
    {
        return $this->beneficiario->getEndereco();
    }
}