Skip to content

Back feat/surgery #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Sep 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Controller;

import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery.RequestCreateSurgery;
import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery.RequestEditSurgery;
import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery.ResponseSurgery;
import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Entity.Surgery;
import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Mapper.SurgeryMapper;
import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Service.SurgeryService;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.Collections;
import java.util.List;

@RequiredArgsConstructor
@RestController
@RequestMapping("/sugery")
public class SurgeryController {

public final SurgeryService surgeryService;
public final SurgeryMapper surgeryMapper;


@GetMapping("/id/{id}")
public ResponseEntity<ResponseSurgery> getSurgeryById(@PathVariable Long id) {
return ResponseEntity.ok(surgeryService.getSurgeryById(id));
}

@GetMapping("/all")
public ResponseEntity<List<ResponseSurgery>> getAllSurgeries() {
return ResponseEntity.ok(surgeryService.getAllSurgeries());
}

@PostMapping("/add")
public ResponseEntity<ResponseSurgery> addSurgery(@RequestBody @Valid RequestCreateSurgery requestCreateSurgery) {
return ResponseEntity.status(HttpStatus.CREATED).body(surgeryService.addSurgery(requestCreateSurgery));
}

@PutMapping("/update/{id}")
public ResponseEntity<ResponseSurgery> updateSurgery(@PathVariable Long id, @RequestBody @Valid RequestEditSurgery requestEditSurgery) {
return ResponseEntity.ok(surgeryService.updateSurgery(id, requestEditSurgery));
}

@DeleteMapping("/delete/{id}")
public ResponseEntity<Void> deleteSurgery(@PathVariable Long id) {
surgeryService.deleteSurgery(id);
return ResponseEntity.noContent().build();
}

@GetMapping("/owner/{ownerId}")
public List<Surgery> getSurgeryByOwnerId(@PathVariable Long ownerId) {
// Retorna una lista vacía para propósitos de visualización en Swagger
return Collections.emptyList();
}

@GetMapping("/pet/{petId}")
public List<Surgery> getSurgeriesByPetId(@PathVariable Long petId) {
// Retorna una lista vacía para propósitos de visualización en Swagger
return Collections.emptyList();
}
// @GetMapping("/owner/{ownerId}")
// public List<Surgery> getSurgeryByOwnerId(@PathVariable Long ownerId) {
// return surgeryService.getSurgeryByOwnerId(ownerId);
// }
//
// @GetMapping("/pet/{petId}")
// public List<Surgery> getSurgeriesByPetId(@PathVariable Long petId) {
// return surgeryService.getSurgeriesByPetId(petId);
// }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery;


import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Past;
import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.Size;

import java.time.LocalDate;

public record RequestCreateSurgery(
// @NotNull(message = "dateDiagnostic cannot be null")
// @Past(message = "dateDiagnostic must be a date before the current date")
// LocalDate dateDiagnostic,
//
// @NotNull(message = "surgeryType cannot be null")
// @Size(min = 2, max = 50, message = "surgeryType must be between 2 and 50 characters in length")
// String surgeryType,
//
// @NotNull(message = "surgeryProcedure cannot be null")
// @Size(min = 2, max = 100, message = "surgeryProcedure must be between 2 and 100 characters in length")
// String surgeryProcedure,
//
// @Size(max = 255, message = "observations must be a maximum of 255 characters in length")
// String observations,
//
// @Size(max = 255, message = "postSurgeryRecommendations must be a maximum of 255 characters in length")
// String postSurgeryRecommendations,
//
// @NotNull(message = "surgeryCost cannot be null")
// @Positive(message = "surgeryCost must be a positive number")
// Double surgeryCost

// @NotNull(message = "consultationId cannot be null")
// Long consultationId
LocalDate dateSurgery,
String surgeryType,
String surgeryProcedure,
String observations,
String postSurgeryRecommendations,
Double surgeryCost
//Long consultationId


) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery;

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Past;
import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.Size;

import java.time.LocalDate;

public record RequestEditSurgery(

@NotNull(message = "dateDiagnostic cannot be null")
@Past(message = "dateDiagnostic must be a date before the current date")
LocalDate dateSurgery,

@NotNull(message = "surgeryType cannot be null")
@Size(min = 2, max = 50, message = "surgeryType must be between 2 and 50 characters in length")
String surgeryType,

@NotNull(message = "surgeryProcedure cannot be null")
@Size(min = 2, max = 100, message = "surgeryProcedure must be between 2 and 100 characters in length")
String surgeryProcedure,

@Size(max = 255, message = "observations must be a maximum of 255 characters in length")
String observations,

@Size(max = 255, message = "postSurgeryRecommendations must be a maximum of 255 characters in length")
String postSurgeryRecommendations,

@NotNull(message = "surgeryCost cannot be null")
@Positive(message = "surgeryCost must be a positive number")
Double surgeryCost
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery;

import java.time.LocalDate;

public record ResponseSurgery(

Long id,
LocalDate dateSurgery,
String surgeryType,
String surgeryProcedure,
String observations,
String postSurgeryRecommendations,
Double surgeryCost
// Long consultationId // Solo se usa para asociar la cirugía a una consulta existente
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Entity;

import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.time.LocalDate;
import java.util.Date;
@Entity
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "surgery")
public class Surgery {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private LocalDate dateSurgery;
private String surgeryType;
private String surgeryProcedure;
private String observations;
private String postSurgeryRecommendations;
private Double surgeryCost;


/*
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "veterinarian_id")
private Veterinarian veterinarian;


@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "consultation_id")
private Consultation consultation;
*/

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "diagnostic_entity_id")
private DiagnosticEntity DiagnosticEntity;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Mapper;

import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery.RequestCreateSurgery;
import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery.RequestEditSurgery;
import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery.ResponseSurgery;
import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Entity.Surgery;
import org.mapstruct.Mapper;


import java.util.List;

@Mapper(componentModel = "spring")
public interface SurgeryMapper {

ResponseSurgery toResponseDTO(Surgery surgery);

// @Mapping(source = "consultationId", target = "consultation.id")
Surgery toEntity(RequestCreateSurgery dto);

/*
@Mapping(target = "consultation.id", source = "consultationId")
Surgery requestCreateToSurgery(RequestCreateSurgery requestCreateSurgery);

Surgery requestEditToSurgery(RequestEditSurgery requestEditSurgery);

ResponseSurgery surgeryToResponse(Surgery surgery);

List<ResponseSurgery> surgeryToResponseList(List<Surgery> surgeries);
Surgery requestCreateToSurgery (RequestCreateSurgery requestCreateSurgery);
Surgery requestEditToSurgery (RequestEditSurgery requestEditSurgery);
ResponseSurgery surgeryToResponse (Surgery surgery);
//Surgery requestCreateToSurgery (RequestCreateSurgery requestCreateSurgery);
*/

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Repository;

import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Entity.Surgery;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface SurgeryRepository extends JpaRepository<Surgery, Long> {

// List<Surgery> findByOwnerId(Long ownerId);
// List<Surgery> findByPetId(Long petId);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Service;

import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery.RequestCreateSurgery;
import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery.RequestEditSurgery;
import com.gestor_clinica_veterinaria.VeterinaryHospitalManager.Dto.surgery.ResponseSurgery;

import java.util.List;

public interface SurgeryService {

ResponseSurgery addSurgery(RequestCreateSurgery requestCreateSurgery);
List<ResponseSurgery> getAllSurgeries();
ResponseSurgery getSurgeryById(Long surgeryId);
// List<ResponseSurgery> getSurgeriesByOwnerId(Long ownerId);
// List<ResponseSurgery> getSurgeriesByPetId(Long petId);

ResponseSurgery updateSurgery(Long surgeryId, RequestEditSurgery requestEditSurgery);
void deleteSurgery(Long surgeryId);
}
Loading
Loading