package med.voll.api.controller;
import jakarta.validation.Valid;
import med.voll.api.dto.PacienteDTO;
import med.voll.api.model.Paciente;
import med.voll.api.repository.PacienteRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/pacientes")
public class PacienteController {
@Autowired
PacienteRepository pacienteRepository;
@PostMapping()
public void registrarPaciente(@RequestBody @Valid PacienteDTO datosPaciente) {
pacienteRepository.save(new Paciente(datosPaciente));
}
}
package med.voll.api.dto;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
public record PacienteDTO(
@NotBlank
String nombre,
@NotBlank
@Email
String email,
@NotBlank
String telefono,
@NotBlank
String documento,
@NotBlank
String calle,
@NotBlank
String numero,
@NotBlank
String comuna,
@NotBlank
String ciudad) {
}
package med.voll.api.model;
import jakarta.persistence.*;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import med.voll.api.dto.PacienteDTO;
@Entity(name = "Paciente")
@Table(name = "pacientes")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(of = "id")
public class Paciente {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nombre;
private String email;
private String telefono;
private String documento;
private String calle;
private String numero;
private String comuna;
private String ciudad;
public Paciente(PacienteDTO pacienteDTO) {
this.nombre = pacienteDTO.nombre();
this.email = pacienteDTO.email();
this.telefono = pacienteDTO.telefono();
this.documento = pacienteDTO.documento();
this.calle = pacienteDTO.calle();
this.numero = pacienteDTO.numero();
this.comuna = pacienteDTO.comuna();
this.ciudad = pacienteDTO.ciudad();
}
}
package med.voll.api.repository;
import med.voll.api.model.Paciente;
import org.springframework.data.jpa.repository.JpaRepository;
public interface PacienteRepository extends JpaRepository<Paciente, Long> {
}