Skip to content

Commit

Permalink
Initial Data Seeding and Some QoL Improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
FruTooTi committed Dec 11, 2023
1 parent a974ee2 commit 6a574bc
Show file tree
Hide file tree
Showing 11 changed files with 337 additions and 20 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
package com.production.ehayvanbackendapi.Configurations;

import com.production.ehayvanbackendapi.Entities.*;
import com.production.ehayvanbackendapi.Repositories.*;
import net.sf.jsqlparser.expression.DateTimeLiteralExpression;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.security.core.parameters.P;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Configuration
public class InitialDataSeeding implements ApplicationListener<ContextRefreshedEvent> {
private final PetOwnerRepository petOwnerRepository;
private final MedTypeRepository medTypeRepository;
private final PetTypeRepository petTypeRepository;
private final UserTypeRepository userTypeRepository;
private final AppointmentRepository appointmentRepository;
private final MedicationRepository medicationRepository;
private final PetRepository petRepository;
private final ScheduleRepository scheduleRepository;
private final VeterinarianRepository veterinarianRepository;
public InitialDataSeeding(PetOwnerRepository petOwnerRepo,
MedTypeRepository medTypeRepo,
PetTypeRepository petTypeRepo,
UserTypeRepository userTypeRepo,
CustomerRepository customerRepo,
AppointmentRepository appointmentRepo,
MedicationRepository medicationRepo,
PetRepository petRepo,
ScheduleRepository scheduleRepo,
VeterinarianRepository veterinarianRepo){
petOwnerRepository = petOwnerRepo;
medTypeRepository = medTypeRepo;
petTypeRepository = petTypeRepo;
userTypeRepository = userTypeRepo;
appointmentRepository = appointmentRepo;
medicationRepository = medicationRepo;
petRepository = petRepo;
scheduleRepository = scheduleRepo;
veterinarianRepository = veterinarianRepo;
}
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
// List<UserType> userTypes = userTypeRepository.findAll();
// List<PetOwner> petOwners = petOwnerRepository.findAll();
// if(!userTypes.isEmpty()){
// if(petOwners.isEmpty()){
// //Create Customer for PetOwner
// Customer exampleCustomer = new Customer();
// exampleCustomer.setName("exampleName");
// exampleCustomer.setSurname("exampleSurname");
// exampleCustomer.setEmail("[email protected]");
// exampleCustomer.setPassword("example");
// exampleCustomer.setUserTypeID(userTypeRepository.findById(1).get());
//
// //Create Customer for Veterinarian
// Customer exampleCustomerVet = new Customer();
// exampleCustomerVet.setName("exampleVetName");
// exampleCustomerVet.setSurname("exampleVetSurname");
// exampleCustomerVet.setEmail("[email protected]");
// exampleCustomerVet.setPassword("example");
// exampleCustomerVet.setUserTypeID(userTypeRepository.findById(2).get());
//
// //Create PetOwner
// PetOwner exampleOwner = new PetOwner();
//
// //Connect Customer Profile of PetOwner
// exampleOwner.setUser(exampleCustomer);
//
// //Create Veterinarian
// Veterinarian exampleVeterinarian = new Veterinarian();
// exampleVeterinarian.setClinic("Example Clinic");
//
// //Connect Veterinarian and PetOwner
// List<PetOwner> exampleOwners = new ArrayList<>();
// exampleOwners.add(exampleOwner);
// exampleVeterinarian.setPetOwners(exampleOwners);
//
// //Connect Customer Profile of Veterinarian
// exampleVeterinarian.setUser(exampleCustomerVet);
// exampleCustomerVet.setVet(exampleVeterinarian);
//
// //Connect Veterinarian and PetOwner
// exampleOwner.setVet(exampleVeterinarian);
//
// //Create an example Pet
// Pet examplePet = new Pet();
// examplePet.setPetName("examplePet");
// examplePet.setAge(2);
// examplePet.setDescription("example description");
// examplePet.setPetTypeID(petTypeRepository.findById(2).get());
//
// //Connect Pet with PetOwner
// examplePet.setPetOwnerID(exampleOwner);
//
// //Connect PetOwner with Pet
// List<Pet> examplePets = new ArrayList<>();
// examplePets.add(examplePet);
// exampleOwner.setPets(examplePets);
//
// //Create an Appointment
// Appointment exampleAppointment = new Appointment();
// Date date = new Date();
// exampleAppointment.setAppointmentDate(date);
// exampleAppointment.setVetID(exampleVeterinarian);
// exampleAppointment.setPetID(examplePet);
// exampleAppointment.setPetOwnerID(exampleOwner);
//
// //Connect Veterinarian, Owner and Pet with Appointment
// List<Appointment> appointmentsVeterinarian = new ArrayList<>();
// appointmentsVeterinarian.add(exampleAppointment);
// exampleVeterinarian.setAppointments(appointmentsVeterinarian);
//
// List<Appointment> appointmentsOwner = new ArrayList<>();
// appointmentsOwner.add(exampleAppointment);
// exampleOwner.setAppointments(appointmentsOwner);
//
// List<Appointment> appointmentsPet = new ArrayList<>();
// appointmentsPet.add(exampleAppointment);
// examplePet.setAppointments(appointmentsPet);
//
// //Create Schedule
// Schedule exampleSchedule = new Schedule();
// exampleSchedule.setBeginningDate(new Date());
// exampleSchedule.setDoseCount(1);
// exampleSchedule.setDoseFrequency(1);
//
// //Create Medication
// Medication exampleMedication = new Medication();
// exampleMedication.setMedicationName("exampleMedication");
// exampleMedication.setMedTypeID(medTypeRepository.findById(1).get());
//
// //Connect Medication with Schedule
// exampleMedication.setScheduleID(exampleSchedule);
// List<Medication> medicationsSchedule = new ArrayList<>();
// medicationsSchedule.add(exampleMedication);
// exampleSchedule.setMedications(medicationsSchedule);
//
// //Connect Pet with Medication
// List<Medication> medicationsPet = new ArrayList<>();
// medicationsPet.add(exampleMedication);
// examplePet.setMedications(medicationsPet);
//
// //Connect Medication with Pet
// exampleMedication.setPetID(examplePet);
//
// veterinarianRepository.save(exampleVeterinarian);
// petOwnerRepository.save(exampleOwner);
// petRepository.save(examplePet);
// appointmentRepository.save(exampleAppointment);
// scheduleRepository.save(exampleSchedule);
// medicationRepository.save(exampleMedication);
// }
// }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.production.ehayvanbackendapi.Configurations;

import com.production.ehayvanbackendapi.Entities.MedType;
import com.production.ehayvanbackendapi.Repositories.MedTypeRepository;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.event.ContextRefreshedEvent;
import java.util.List;

@Configuration
public class MedTypeSeeding implements ApplicationListener<ContextRefreshedEvent> {
private final MedTypeRepository medTypeRepository;
public MedTypeSeeding(MedTypeRepository repository){
medTypeRepository = repository;
}

@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
List<MedType> medTypes = medTypeRepository.findAll();
if(medTypes.isEmpty()){
MedType vaccine = new MedType();
MedType drop = new MedType();
MedType medication = new MedType();

vaccine.setMedType("Vaccine");
drop.setMedType("Drop");
medication.setMedType("Medication");

medTypeRepository.save(vaccine);
medTypeRepository.save(drop);
medTypeRepository.save(medication);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.production.ehayvanbackendapi.Configurations;

import com.production.ehayvanbackendapi.Entities.Pet;
import com.production.ehayvanbackendapi.Entities.PetType;
import com.production.ehayvanbackendapi.Repositories.PetTypeRepository;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.event.ContextRefreshedEvent;

import java.util.List;

@Configuration
public class PetTypeSeeding implements ApplicationListener<ContextRefreshedEvent> {
private final PetTypeRepository petTypeRepository;
public PetTypeSeeding(PetTypeRepository repository){
petTypeRepository = repository;
}
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
List<PetType> petTypes = petTypeRepository.findAll();
if(petTypes.isEmpty()){
PetType cat = new PetType();
PetType dog = new PetType();
PetType bird = new PetType();
PetType other = new PetType();

cat.setType("Cat");
dog.setType("Dog");
bird.setType("Bird");
other.setType("Other");

petTypeRepository.save(cat);
petTypeRepository.save(dog);
petTypeRepository.save(bird);
petTypeRepository.save(other);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.production.ehayvanbackendapi.Configurations;

import com.production.ehayvanbackendapi.Entities.UserType;
import com.production.ehayvanbackendapi.Repositories.UserTypeRepository;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.event.ContextRefreshedEvent;

import java.util.ArrayList;
import java.util.List;

@Configuration
public class UserTypeSeeding implements ApplicationListener<ContextRefreshedEvent> {
private final UserTypeRepository userTypeRepository;
public UserTypeSeeding(UserTypeRepository repository){
userTypeRepository = repository;
}

@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
List<UserType> userTypes = userTypeRepository.findAll();
if(userTypes.isEmpty()){
UserType petOwner = new UserType();
UserType veterinarian = new UserType();
UserType administrator = new UserType();

petOwner.setType("Pet Owner");
veterinarian.setType("Veterinarian");
administrator.setType("Administrator");

userTypeRepository.save(petOwner);
userTypeRepository.save(veterinarian);
userTypeRepository.save(administrator);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import jakarta.persistence.*;
import net.sf.jsqlparser.expression.DateTimeLiteralExpression;

import java.util.Date;

@Entity
@Table(name="Appointment")
public class Appointment {
Expand All @@ -15,46 +17,39 @@ public class Appointment {
@ManyToOne
@JoinColumn(name = "VetID", referencedColumnName = "VetID")
private Veterinarian VetID;
@Column(nullable = false)
private DateTimeLiteralExpression.DateTime AppointmentDate;
@ManyToOne
@JoinColumn(name = "PetID", referencedColumnName = "PetID")
private Pet PetID;
@Column(nullable = false)
private Date AppointmentDate;
public int getAppointmentID() {
return AppointmentID;
}

public void setAppointmentID(int appointmentID) {
AppointmentID = appointmentID;
}

public PetOwner getPetOwnerID() {
return PetOwnerID;
}

public void setPetOwnerID(PetOwner petOwnerID) {
PetOwnerID = petOwnerID;
}

public Veterinarian getVetID() {
return VetID;
}

public void setVetID(Veterinarian vetID) {
VetID = vetID;
}

public DateTimeLiteralExpression.DateTime getAppointmentDate() {
return AppointmentDate;
}

public void setAppointmentDate(DateTimeLiteralExpression.DateTime appointmentDate) {
AppointmentDate = appointmentDate;
}
public Pet getPetID() {
return PetID;
}
public void setPetID(Pet petID) {
PetID = petID;
}
public Date getAppointmentDate() {
return AppointmentDate;
}
public void setAppointmentDate(Date appointmentDate) {
AppointmentDate = appointmentDate;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,22 @@ public String getPassword() {
public void setPassword(String password) {
Password = password;
}
public UserType getUserTypeID() {
return UserTypeID;
}
public void setUserTypeID(UserType userTypeID) {
UserTypeID = userTypeID;
}
public Veterinarian getVet() {
return Vet;
}
public void setVet(Veterinarian vet) {
Vet = vet;
}
public PetOwner getOwner() {
return Owner;
}
public void setOwner(PetOwner owner) {
Owner = owner;
}
}
18 changes: 18 additions & 0 deletions src/main/java/com/production/ehayvanbackendapi/Entities/Pet.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,22 @@ public String getDescription() {
public void setDescription(String description) {
Description = description;
}
public PetOwner getPetOwnerID() {
return PetOwnerID;
}
public void setPetOwnerID(PetOwner petOwnerID) {
PetOwnerID = petOwnerID;
}
public List<Appointment> getAppointments() {
return Appointments;
}
public void setAppointments(List<Appointment> appointments) {
Appointments = appointments;
}
public List<Medication> getMedications() {
return Medications;
}
public void setMedications(List<Medication> medications) {
Medications = medications;
}
}
Loading

0 comments on commit 6a574bc

Please sign in to comment.