Hola, me pueden a ayudar, ya que al compilarlo me sale estos errores Este es el código de las nuevas cosas implementadas
package med.voll.api.controller;
import jakarta.validation.Valid;
import med.voll.api.domain.consulta.DatosAgendarConsultas;
import med.voll.api.domain.consulta.DatosDetalleConsulta;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/consultas")
public class ConsultaController {
@PostMapping
@Transactional
public ResponseEntity agendar(@RequestBody @Valid DatosAgendarConsultas datos) {
System.out.println(datos);
return ResponseEntity.ok(new DatosDetalleConsulta(null,null,null,null));
}
}
package med.voll.api.domain.consulta;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import med.voll.api.domain.medico.Medico;
import med.voll.api.domain.paciente.Paciente;
import java.time.LocalDateTime;
@Table(name = "consultas")
@Entity(name = "Consulta")
@Getter //Genera getters y setters automaticamente
@NoArgsConstructor //Contructor default sin atributos
@AllArgsConstructor //Constructor con atributos
@EqualsAndHashCode(of = "id") //Para hacer las conparaciones entre medicos si son iguales
public class Consulta {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "medico_id")
private Medico medico;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "paciente_id")
private Paciente paciente;
private LocalDateTime fecha;
}
package med.voll.api.domain.consulta;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface ConsultaRepository extends JpaRepository<Consulta, Long> {
}
package med.voll.api.domain.consulta;
import jakarta.validation.constraints.Future;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;
public record DatosAgendarConsultas(Long id, @NotNull Long id_paciente, Long id_medico, @NotNull @Future LocalDateTime fecha) {
}
package med.voll.api.domain.consulta;
import java.time.LocalDateTime;
public record DatosDetalleConsulta(Long id, Long id_paciente, Long id_medico, LocalDateTime fecha) {
}
create table consultas(
id bigint not null auto_increment,
medico_id bigint not null,
paciente_id bigint not null,
data datetime not null,
primary key(id),
constraint fk_consultas_medico_id foreign key (medico_id) references medicos(id),
constraint fk_consultas_paciente_id foreign key (paciente_id) references pacientes(id)
);