belongsTo(Logradouro::class); } public function loteamento() { return $this->belongsTo(Loteamento::class); } public function zona() { return $this->belongsTo(Zona::class); } public function infraestruturas() { return $this->hasMany(Infraestrutura::class); } public function domicilios() { return $this->hasMany(Domicilio::class); } public function agendamentosExameImagem() { return $this->hasMany(Agendamento::class); } public function getSemNumeroAttribute() { return is_null($this->numero); } public function getCompletoAttribute() { $tipo = $this->logradouro->tipo->descricao; $logradouro = $this->logradouro->nome; $numero = $this->sem_numero ? 'S/N' : $this->numero; $bairro = $this->logradouro->bairro->nome; $municipio = $this->logradouro->municipio->nome; $uf = $this->logradouro->municipio->estado->uf; return "{$tipo} {$logradouro}, {$numero} - {$bairro}, {$municipio} - {$uf}"; } public function getIsAllowedToDeleteAttribute() { return $this->hasNoOne([ 'infraestruturas', 'domicilios', ]); } }