package br.com.clsolucoes.homecare.paciente;
import br.com.clsolucoes.homecare.endereco.Endereco;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Table(name = "pacientes")
@Entity(name = "Paciente")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(of = "id")
public class Paciente {
    private static final long serialVersionUID = 1L;
    @Id   @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String email;
private String telefone;
private String cpf;
@Embedded
private Endereco endereco;
public Paciente(DadosCadastroPaciente dados) {
    this.nome = dados.nome();
    this.email = dados.email();
    this.telefone = dados.telefone();
    this.cpf = dados.cpf();
    this.endereco = new Endereco(dados.endereco());
}
}
e a endereço:
package med.voll.api.endereco;
import jakarta.persistence.Embeddable;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Embeddable
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class Endereco {
private String logradouro;
private String bairro;
private String cep;
private String numero;
private String complemento;
private String cidade;
private String uf;
public Endereco(DadosEndereco dados) {
    this.logradouro = dados.logradouro();
    this.bairro = dados.bairro();
    this.cep = dados.cep();
    this.uf = dados.uf();
    this.cidade = dados.cidade();
    this.numero = dados.numero();
    this.complemento = dados.complemento();
}
public void atualizarInformacoes(DadosEndereco dados) {
    if (dados.logradouro() != null) {
        this.logradouro = dados.logradouro();
    }
    if (dados.bairro() != null) {
        this.bairro = dados.bairro();
    }
    if (dados.cep() != null) {
        this.cep = dados.cep();
    }
    if (dados.uf() != null) {
        this.uf = dados.uf();
    }
    if (dados.cidade() != null) {
        this.cidade = dados.cidade();
    }
    if (dados.numero() != null) {
        this.numero = dados.numero();
    }
    if (dados.complemento() != null) {
        this.complemento = dados.complemento();
    }
}
}