diff --git a/MyINPulse-back/build.gradle b/MyINPulse-back/build.gradle index abdd6a9..5d1c2fd 100644 --- a/MyINPulse-back/build.gradle +++ b/MyINPulse-back/build.gradle @@ -20,6 +20,10 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server' implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation('org.springframework.boot:spring-boot-starter-validation') + implementation('org.springframework.boot:spring-boot-starter-data-rest') + implementation 'org.postgresql:postgresql' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/AdministrateursController.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/AdministrateursController.java new file mode 100644 index 0000000..5f1a718 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/AdministrateursController.java @@ -0,0 +1,39 @@ +package enseirb.myinpulse.postgres_db.controller; + +import enseirb.myinpulse.postgres_db.repository.AdministrateursRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; +import enseirb.myinpulse.postgres_db.model.Administrateurs; +import org.springframework.web.server.ResponseStatusException; + +import java.util.Optional; + +@RestController +public class AdministrateursController { + + @Autowired + AdministrateursRepository administrateursRepository; + + @GetMapping("/Administrateurs") + @ResponseBody + public Iterable allAdministrateurs() { + return this.administrateursRepository.findAll(); + } + + @GetMapping("/Administrateurs/{id}") + public Administrateurs getAdministrateursById(@PathVariable Long id) + { + Optional administrateur = this.administrateursRepository.findById(id); + if (administrateur.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Cet administrateur n'existe pas"); + } + return administrateur.get(); + } + + @PostMapping("/Administrateurs") + public Administrateurs addAdministrateurs(@RequestBody Administrateurs administrateurs) { + return this.administrateursRepository.save(administrateurs); + } + +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/ComptesRendusController.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/ComptesRendusController.java new file mode 100644 index 0000000..9bcc862 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/ComptesRendusController.java @@ -0,0 +1,49 @@ +package enseirb.myinpulse.postgres_db.controller; + +import enseirb.myinpulse.postgres_db.repository.ComptesRendusRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; +import enseirb.myinpulse.postgres_db.model.ComptesRendus; +import org.springframework.web.server.ResponseStatusException; + +import java.util.Optional; + +@RestController +public class ComptesRendusController { + + @Autowired + ComptesRendusRepository comptesRendusRepository; + + @GetMapping("/ComptesRendus") + @ResponseBody + public Iterable allComptesRendus() { + return this.comptesRendusRepository.findAll(); + } + + @GetMapping("/ComptesRendus/{id}") + public ComptesRendus getComptesRendusById(@PathVariable Long id) { + Optional compteRendu = this.comptesRendusRepository.findById(id); + if (compteRendu.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Ce compte rendu n'existe pas"); + } + return compteRendu.get(); + } + + @PostMapping("/ComptesRendus") + public ComptesRendus addComptesRendus(@RequestBody ComptesRendus comptesRendus) { + return this.comptesRendusRepository.save(comptesRendus); + } + + @PostMapping("/ComptesRendus/{id}") + public ComptesRendus updateProjets(@PathVariable Long id, String contenu_compte_rendu) { + Optional compteRendu = this.comptesRendusRepository.findById(id); + if (compteRendu.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Ce compte rendu n'existe pas"); + } + if (contenu_compte_rendu != null) { + compteRendu.get().setContenu_compte_rendu(contenu_compte_rendu); + } + return compteRendu.get(); + } +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/EntrepreneursController.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/EntrepreneursController.java new file mode 100644 index 0000000..2bbc653 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/EntrepreneursController.java @@ -0,0 +1,59 @@ +package enseirb.myinpulse.postgres_db.controller; + +import enseirb.myinpulse.postgres_db.repository.EntrepreneursRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; +import org.springframework.web.bind.annotation.*; +import enseirb.myinpulse.postgres_db.model.Entrepreneurs; +import org.springframework.web.server.ResponseStatusException; + +import java.util.Optional; + + +@RestController +public class EntrepreneursController { + + @Autowired + EntrepreneursRepository entrepreneursRepository; + + @GetMapping("/Entrepreneurs") + @ResponseBody + public Iterable allEntrepreneurs() { + return this.entrepreneursRepository.findAll(); + } + + @GetMapping("/Entrepreneurs/{id}") + public Entrepreneurs getEntrepreneursById(@PathVariable Long id) + { + Optional entrepreneur = entrepreneursRepository.findById(id); + if (entrepreneur.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Cet entrepreneur n'existe pas"); + } + return entrepreneur.get(); + } + + @PostMapping("/Entrepreneurs") + public Entrepreneurs addEntrepreneurs(@RequestBody Entrepreneurs entrepreneurs) { + return this.entrepreneursRepository.save(entrepreneurs); + } + + @PostMapping("/Entrepreneurs/{id}") + public Entrepreneurs updateEntrepreneurs(@PathVariable Long id, String ecole, String filiere, Boolean status_snee) { + Optional entrepreneur = entrepreneursRepository.findById(id); + if (entrepreneur.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Cet entrepreneur n'existe pas"); + } + if (ecole != null) { + entrepreneur.get().setEcole(ecole); + } + if (filiere != null) { + entrepreneur.get().setFiliere(filiere); + } + if (status_snee != null) { + entrepreneur.get().setStatus_snee(status_snee); + } + return entrepreneur.get(); + } + +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/ProjetsController.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/ProjetsController.java new file mode 100644 index 0000000..92b5908 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/ProjetsController.java @@ -0,0 +1,61 @@ +package enseirb.myinpulse.postgres_db.controller; + +import enseirb.myinpulse.postgres_db.repository.ProjetsRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; +import enseirb.myinpulse.postgres_db.model.Projets; +import org.springframework.web.server.ResponseStatusException; + +import java.time.LocalDate; +import java.util.Optional; + +@RestController +public class ProjetsController { + + @Autowired + ProjetsRepository projetsRepository; + + @GetMapping("/Projets") + @ResponseBody + public Iterable allProjets() { + return this.projetsRepository.findAll(); + } + + @GetMapping("/Projets/{id}") + public Projets getProjetsById(@PathVariable Long id) + { + Optional projet = this.projetsRepository.findById(id); + if (projet.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Ce projet n'existe pas"); + } + return projet.get(); + } + + @PostMapping("/Projets") + public Projets addProjets(@RequestBody Projets projet) { + return this.projetsRepository.save(projet); + } + + @PostMapping("/Projets/{id}") + public Projets updateProjets(@PathVariable Long id, String nom_projet, Byte[] logo, LocalDate date_creation, String status_projet) { + Optional projet = this.projetsRepository.findById(id); + if (projet.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Ce projet n'existe pas"); + } + if (nom_projet != null) { + projet.get().setNom_projet(nom_projet); + } + if (logo != null) { + projet.get().setLogo(logo); + } + if (date_creation != null) { + projet.get().setDate_creation(date_creation); + } + if (status_projet != null) { + projet.get().setStatus_projet(status_projet); + } + return projet.get(); + } + +} \ No newline at end of file diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/RendezVousController.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/RendezVousController.java new file mode 100644 index 0000000..aa9e3ba --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/RendezVousController.java @@ -0,0 +1,64 @@ +package enseirb.myinpulse.postgres_db.controller; + +import enseirb.myinpulse.postgres_db.repository.RendezVousRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; +import enseirb.myinpulse.postgres_db.model.RendezVous; +import org.springframework.web.server.ResponseStatusException; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Optional; + +@RestController +public class RendezVousController { + + @Autowired + RendezVousRepository rendezVousRepository; + + @GetMapping("/RendezVous") + @ResponseBody + public Iterable allRendezVous() { + return this.rendezVousRepository.findAll(); + } + + @GetMapping("/RendezVous/{id}") + public RendezVous getRendezVousById(@PathVariable Long id) + { + Optional rendezVous = this.rendezVousRepository.findById(id); + if (rendezVous.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Ce rendez vous n'existe pas"); + } + return rendezVous.get(); + } + + @PostMapping("/RendezVous") + public RendezVous addRendezVous(@RequestBody RendezVous rendezVous) { + return this.rendezVousRepository.save(rendezVous); + } + + @PostMapping("/RendezVous/{id}") + public RendezVous updateRendezVous(@PathVariable Long id, LocalDate date_rdv, LocalDateTime heure_rdv, LocalDateTime duree_rdv, String lieu_rdv, String sujet_rdv) { + Optional rendezVous = this.rendezVousRepository.findById(id); + if (rendezVous.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Ce rendez vous n'existe pas"); + } + if (date_rdv != null) { + rendezVous.get().setDate_rdv(date_rdv); + } + if (heure_rdv != null) { + rendezVous.get().setHeure_rdv(heure_rdv); + } + if (duree_rdv != null) { + rendezVous.get().setDuree_rdv(duree_rdv); + } + if (lieu_rdv != null) { + rendezVous.get().setLieu_rdv(lieu_rdv); + } + if (sujet_rdv != null) { + rendezVous.get().setSujet_rdv(sujet_rdv); + } + return rendezVous.get(); + } +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/SectionsController.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/SectionsController.java new file mode 100644 index 0000000..49032fe --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/SectionsController.java @@ -0,0 +1,58 @@ +package enseirb.myinpulse.postgres_db.controller; + +import enseirb.myinpulse.postgres_db.repository.SectionsRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; +import enseirb.myinpulse.postgres_db.model.Sections; +import org.springframework.web.server.ResponseStatusException; + +import java.time.LocalDateTime; +import java.util.Optional; + +@RestController +public class SectionsController { + + @Autowired + SectionsRepository sectionsRepository; + + @GetMapping("/Sections") + @ResponseBody + public Iterable allSections() { + return this.sectionsRepository.findAll(); + } + + @GetMapping("/Sections/{id}") + public Sections getSectionsById(@PathVariable Long id) + { + Optional section = this.sectionsRepository.findById(id); + if (section.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Cette section n'extise pas"); + } + return section.get(); + } + + @PostMapping("/Sections") + public Sections addSections(@RequestBody Sections sections) { + return this.sectionsRepository.save(sections); + } + + @PostMapping("/Sections/{id}") + public Sections updateSections(@PathVariable Long id, String titre, String contenu_section, LocalDateTime date_modification) { + Optional section = this.sectionsRepository.findById(id); + if (section.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Cette section n'extise pas"); + } + if (titre != null) { + section.get().setTitre(titre); + } + if (contenu_section != null) { + section.get().setContenu_section(contenu_section); + } + if (date_modification != null) { + section.get().setDate_modification(date_modification); + } + return section.get(); + } + +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/UtilisateursController.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/UtilisateursController.java new file mode 100644 index 0000000..059e2f0 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/controller/UtilisateursController.java @@ -0,0 +1,61 @@ +package enseirb.myinpulse.postgres_db.controller; + +import enseirb.myinpulse.postgres_db.repository.UtilisateursRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; +import enseirb.myinpulse.postgres_db.model.Utilisateurs; +import org.springframework.web.server.ResponseStatusException; + +import java.util.Optional; + +@RestController +public class UtilisateursController { + + @Autowired + UtilisateursRepository utilisateursRepository; + + @GetMapping("/Utilisateurs") + @ResponseBody + public Iterable allUtilisateurs() { + return this.utilisateursRepository.findAll(); + } + + @GetMapping("/Utilisateurs/{id}") + public Utilisateurs getUtilisateursById(@PathVariable Long id) { + Optional utilisateur = utilisateursRepository.findById(id); + if (utilisateur.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Cet utilisateur n'existe pas"); + } + return utilisateur.get(); + } + + @PostMapping("/Utilisateurs") + public Utilisateurs addUtilisateurs(@RequestBody Utilisateurs utilisateurs) { + return this.utilisateursRepository.save(utilisateurs); + } + + @PostMapping("/Utilisateurs/{id}") + public Utilisateurs updateUtilisateurs(@PathVariable Long id, String nom_utilisateur, String prenom_utilisateur, String mail_principal, String mail_secondaire, String numero_telephone) { + Optional utilisateur = utilisateursRepository.findById(id); + if (utilisateur.isEmpty()) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Cet utilisateur n'existe pas"); + }if (nom_utilisateur != null) { + utilisateur.get().setNom_utilisateur(nom_utilisateur); + } + if (prenom_utilisateur != null) { + utilisateur.get().setPrenom_utilisateur(prenom_utilisateur); + } + if (mail_principal != null) { + utilisateur.get().setMail_principal(mail_principal); + } + if (mail_secondaire != null) { + utilisateur.get().setMail_secondaire(mail_secondaire); + } + if (numero_telephone != null) { + utilisateur.get().setNumero_telephone(numero_telephone); + } + return utilisateur.get(); + } + +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Administrateurs.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Administrateurs.java new file mode 100644 index 0000000..0255adf --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Administrateurs.java @@ -0,0 +1,34 @@ +package enseirb.myinpulse.postgres_db.model; + +import jakarta.persistence.*; +import jakarta.persistence.PrimaryKeyJoinColumn; +import jakarta.persistence.Table; + +import java.util.ArrayList; +import java.util.List; + +@Entity +@Table(name = "administrateurs") +@PrimaryKeyJoinColumn(name = "id_administrateur") + +public class Administrateurs extends Utilisateurs { + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "Projets.id_projets") + private Projets projets; + + @OneToMany(mappedBy = "administrateurs", fetch = FetchType.LAZY, orphanRemoval = true) + private List ListSections = new ArrayList<>(); + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "RendezVous.id_rdv") + private RendezVous rendezVous; + + public Administrateurs() { + } + + public Administrateurs(String nom_utilisateur, Long id_utilisateur, String prenom_utilisateur, String mail_principal, String mail_secondaire, String numero_telephone) { + super(nom_utilisateur, id_utilisateur, prenom_utilisateur, mail_principal, mail_secondaire, numero_telephone); + } + +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/ComptesRendus.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/ComptesRendus.java new file mode 100644 index 0000000..cd7f283 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/ComptesRendus.java @@ -0,0 +1,48 @@ +package enseirb.myinpulse.postgres_db.model; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; + +@Entity +@Table(name = "comptes_rendus") +public class ComptesRendus { + + @Id + @NotNull + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id_compte_rendu; + + private String contenu_compte_rendu; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "RendezVous.id_rdv") + private RendezVous rendezVous; + + + public ComptesRendus() { + } + + public ComptesRendus(Long id_compte_rendu, String contenu_compte_rendu) { + this.id_compte_rendu = id_compte_rendu; + this.contenu_compte_rendu = contenu_compte_rendu; + } + + public Long getId_compte_rendu() { + return id_compte_rendu; + } + + public void setId_compte_rendu(Long id_compte_rendu) { + this.id_compte_rendu = id_compte_rendu; + } + + public String getContenu_compte_rendu() { + return contenu_compte_rendu; + } + + public void setContenu_compte_rendu(String contenu_compte_rendu) { + this.contenu_compte_rendu = contenu_compte_rendu; + } +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Entrepreneurs.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Entrepreneurs.java new file mode 100644 index 0000000..b8f6964 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Entrepreneurs.java @@ -0,0 +1,66 @@ +package enseirb.myinpulse.postgres_db.model; + +import jakarta.persistence.Entity; +import jakarta.persistence.*; +import jakarta.persistence.Table; + +@Entity +@Table(name = "entrepreneurs") +@PrimaryKeyJoinColumn(name = "id_entrepreneur") +public class Entrepreneurs extends Utilisateurs { + + @Column(length=255) + private String ecole; + + @Column(length=255) + private String filiere; + + private boolean status_snee; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "Projets.id_projets") + private Projets projets_participation; + + @OneToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "Projets.id_projets") + private Projets projets_propose; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "RendezVous.id_rdv") + private RendezVous rendezVous; + + + public Entrepreneurs() { + } + + public Entrepreneurs(String nom_utilisateur, Long id_utilisateur, String prenom_utilisateur, String mail_principal, String mail_secondaire, String numero_telephone, String ecole, boolean status_snee, String filiere) { + super(nom_utilisateur, id_utilisateur, prenom_utilisateur, mail_principal, mail_secondaire, numero_telephone); + this.ecole = ecole; + this.status_snee = status_snee; + this.filiere = filiere; + } + + public String getEcole() { + return ecole; + } + + public void setEcole(String ecole) { + this.ecole = ecole; + } + + public String getFiliere() { + return filiere; + } + + public void setFiliere(String filiere) { + this.filiere = filiere; + } + + public boolean isStatus_snee() { + return status_snee; + } + + public void setStatus_snee(boolean status_snee) { + this.status_snee = status_snee; + } +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Projets.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Projets.java new file mode 100644 index 0000000..6fd8d98 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Projets.java @@ -0,0 +1,95 @@ +package enseirb.myinpulse.postgres_db.model; + +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Table(name = "projets") +public class Projets { + + @Id + @NotNull + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id_projet; + + @Column(length=255) + private String nom_projet; + + private Byte[] logo; + + private LocalDate date_creation; + + @Column(length=255) + private String status_projet; + + @OneToMany(mappedBy = "projets", fetch = FetchType.LAZY, orphanRemoval = true) + private List listAdministrateurs = new ArrayList<>(); + + @OneToMany(mappedBy = "projets", fetch = FetchType.LAZY, orphanRemoval = true) + private List ListEntrepreneursParticipation = new ArrayList<>(); + + @OneToOne(mappedBy = "projets", fetch = FetchType.LAZY, orphanRemoval = true) + private Entrepreneurs entrepreneurs_propose; + + @OneToMany(mappedBy = "projets", fetch = FetchType.LAZY, orphanRemoval = true) + private List ListSections = new ArrayList<>(); + + // Hibernate expects entities to have a no-arg constructor, + // though it does not necessarily have to be public. + + public Projets() { + } + + public Projets(Long id_projet, String nom_projet, Byte[] logo, LocalDate date_creation, String status_projet) { + this.id_projet = id_projet; + this.nom_projet = nom_projet; + this.logo = logo; + this.date_creation = date_creation; + this.status_projet = status_projet; + } + + public Long getId_projet() { + return id_projet; + } + + public void setId_projet(Long id_projet) { + this.id_projet = id_projet; + } + + public String getNom_projet() { + return nom_projet; + } + + public void setNom_projet(String nom_projet) { + this.nom_projet = nom_projet; + } + + public Byte[] getLogo() { + return logo; + } + + public void setLogo(Byte[] logo) { + this.logo = logo; + } + + public LocalDate getDate_creation() { + return date_creation; + } + + public void setDate_creation(LocalDate date_creation) { + this.date_creation = date_creation; + } + + public String getStatus_projet() { + return status_projet; + } + + public void setStatus_projet(String status_projet) { + this.status_projet = status_projet; + } + +} \ No newline at end of file diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/RendezVous.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/RendezVous.java new file mode 100644 index 0000000..78fbfc2 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/RendezVous.java @@ -0,0 +1,107 @@ +package enseirb.myinpulse.postgres_db.model; + +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Table(name = "rendez_vous") +public class RendezVous { + + @Id + @NotNull + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id_rdv; + + private LocalDate date_rdv; + + private LocalDateTime heure_rdv; + + private LocalDateTime duree_rdv; + + @Column(length=255) + private String lieu_rdv; + + private String sujet_rdv; + + @OneToMany(mappedBy = "rendez_vous", fetch = FetchType.LAZY, orphanRemoval = true) + private List ListEntrepreneurs = new ArrayList<>(); + + @OneToMany(mappedBy = "rendez_vous", fetch = FetchType.LAZY, orphanRemoval = true) + private List ListAdministrateurs = new ArrayList<>(); + + @OneToMany(mappedBy = "rendez_vous", fetch = FetchType.LAZY, orphanRemoval = true) + private List ListComptesRendus = new ArrayList<>(); + + @ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.ALL }) + @JoinTable( + name = "concerner", + joinColumns = @JoinColumn(name = "id_rdv"), + inverseJoinColumns = @JoinColumn(name = "id_sections")) + List ListSections = new ArrayList<>(); + + public RendezVous() { + } + + public RendezVous(Long id_rdv, LocalDate date_rdv, LocalDateTime heure_rdv, LocalDateTime duree_rdv, String lieu_rdv, String sujet_rdv) { + this.id_rdv = id_rdv; + this.date_rdv = date_rdv; + this.heure_rdv = heure_rdv; + this.duree_rdv = duree_rdv; + this.lieu_rdv = lieu_rdv; + this.sujet_rdv = sujet_rdv; + } + + public Long getId_rdv() { + return id_rdv; + } + + public void setId_rdv(Long id_rdv) { + this.id_rdv = id_rdv; + } + + public LocalDate getDate_rdv() { + return date_rdv; + } + + public void setDate_rdv(LocalDate date_rdv) { + this.date_rdv = date_rdv; + } + + public LocalDateTime getHeure_rdv() { + return heure_rdv; + } + + public void setHeure_rdv(LocalDateTime heure_rdv) { + this.heure_rdv = heure_rdv; + } + + public LocalDateTime getDuree_rdv() { + return duree_rdv; + } + + public void setDuree_rdv(LocalDateTime duree_rdv) { + this.duree_rdv = duree_rdv; + } + + public String getLieu_rdv() { + return lieu_rdv; + } + + public void setLieu_rdv(String lieu_rdv) { + this.lieu_rdv = lieu_rdv; + } + + public String getSujet_rdv() { + return sujet_rdv; + } + + public void setSujet_rdv(String sujet_rdv) { + this.sujet_rdv = sujet_rdv; + } + +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Sections.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Sections.java new file mode 100644 index 0000000..f5852ac --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Sections.java @@ -0,0 +1,78 @@ +package enseirb.myinpulse.postgres_db.model; + +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Table(name = "sections") +public class Sections { + + @Id + @NotNull + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id_section; + + @Column(length=255) + private String titre; + + private String contenu_section; + + private LocalDateTime date_modification; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "Projets.id_projets") + private Projets projets; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "Administrateurs.id_admnistrateur") + private Administrateurs administrateurs; + + @ManyToMany(mappedBy = "sections") + private List rendezVous = new ArrayList<>(); + + public Sections() { + } + + public Sections(Long id_section, String titre, String contenu_section, LocalDateTime date_modification) { + this.id_section = id_section; + this.titre = titre; + this.contenu_section = contenu_section; + this.date_modification = date_modification; + } + + public String getTitre() { + return titre; + } + + public void setTitre(String titre) { + this.titre = titre; + } + + public Long getId_section() { + return id_section; + } + + public void setId_section(Long id_section) { + this.id_section = id_section; + } + + public String getContenu_section() { + return contenu_section; + } + + public void setContenu_section(String contenu_section) { + this.contenu_section = contenu_section; + } + + public LocalDateTime getDate_modification() { + return date_modification; + } + + public void setDate_modification(LocalDateTime date_modification) { + this.date_modification = date_modification; + } +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Utilisateurs.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Utilisateurs.java new file mode 100644 index 0000000..e20de6b --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/model/Utilisateurs.java @@ -0,0 +1,90 @@ +package enseirb.myinpulse.postgres_db.model; + +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; + +@Entity +@Table(name = "utilisateurs") +@Inheritance(strategy = InheritanceType.JOINED) +public class Utilisateurs { + + @Id + @NotNull + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id_utilisateur; + + @Column(length=255) + private String nom_utilisateur; + + @Column(length=255) + private String prenom_utilisateur; + + @Column(length=255) + private String mail_principal; + + @Column(length=255) + private String mail_secondaire; + + @Column(length=15) + private String numero_telephone; + + public Utilisateurs() { + } + + public Utilisateurs(String nom_utilisateur, Long id_utilisateur, String prenom_utilisateur, String mail_principal, String mail_secondaire, String numero_telephone) { + this.nom_utilisateur = nom_utilisateur; + this.id_utilisateur = id_utilisateur; + this.prenom_utilisateur = prenom_utilisateur; + this.mail_principal = mail_principal; + this.mail_secondaire = mail_secondaire; + this.numero_telephone = numero_telephone; + } + + public Long getId_utilisateur() { + return id_utilisateur; + } + + public void setId_utilisateur(Long id_utilisateur) { + this.id_utilisateur = id_utilisateur; + } + + public String getNom_utilisateur() { + return nom_utilisateur; + } + + public void setNom_utilisateur(String nom_utilisateur) { + this.nom_utilisateur = nom_utilisateur; + } + + public String getPrenom_utilisateur() { + return prenom_utilisateur; + } + + public void setPrenom_utilisateur(String prenom_utilisateur) { + this.prenom_utilisateur = prenom_utilisateur; + } + + public String getMail_principal() { + return mail_principal; + } + + public void setMail_principal(String mail_principal) { + this.mail_principal = mail_principal; + } + + public String getMail_secondaire() { + return mail_secondaire; + } + + public void setMail_secondaire(String mail_secondaire) { + this.mail_secondaire = mail_secondaire; + } + + public String getNumero_telephone() { + return numero_telephone; + } + + public void setNumero_telephone(String numero_telephone) { + this.numero_telephone = numero_telephone; + } +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/AdministrateursRepository.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/AdministrateursRepository.java new file mode 100644 index 0000000..b59d2c0 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/AdministrateursRepository.java @@ -0,0 +1,13 @@ +package enseirb.myinpulse.postgres_db.repository; + +import enseirb.myinpulse.postgres_db.model.Administrateurs; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; + +@RepositoryRestResource +public interface AdministrateursRepository extends JpaRepository { + + /* @Query("SELECT a from Administrateurs a") + Administrateurs findAllAdministrateurs(); */ + +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/ComptesRendusRepository.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/ComptesRendusRepository.java new file mode 100644 index 0000000..41a9c0e --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/ComptesRendusRepository.java @@ -0,0 +1,9 @@ +package enseirb.myinpulse.postgres_db.repository; + +import enseirb.myinpulse.postgres_db.model.ComptesRendus; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; + +@RepositoryRestResource +public interface ComptesRendusRepository extends JpaRepository { +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/EntrepreneursRepository.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/EntrepreneursRepository.java new file mode 100644 index 0000000..bb09b74 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/EntrepreneursRepository.java @@ -0,0 +1,13 @@ +package enseirb.myinpulse.postgres_db.repository; + +import enseirb.myinpulse.postgres_db.model.Entrepreneurs; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; + +@RepositoryRestResource +public interface EntrepreneursRepository extends JpaRepository { + + /* @Query("SELECT e from Entrepreneurs e") + Entrepreneurs findAllEntrepreneurs(); */ + +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/ProjetsRepository.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/ProjetsRepository.java new file mode 100644 index 0000000..6665c89 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/ProjetsRepository.java @@ -0,0 +1,9 @@ +package enseirb.myinpulse.postgres_db.repository; + +import enseirb.myinpulse.postgres_db.model.Projets; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; + +@RepositoryRestResource +public interface ProjetsRepository extends JpaRepository { +} \ No newline at end of file diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/RendezVousRepository.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/RendezVousRepository.java new file mode 100644 index 0000000..be67f00 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/RendezVousRepository.java @@ -0,0 +1,9 @@ +package enseirb.myinpulse.postgres_db.repository; + +import enseirb.myinpulse.postgres_db.model.RendezVous; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; + +@RepositoryRestResource +public interface RendezVousRepository extends JpaRepository { +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/SectionsRepository.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/SectionsRepository.java new file mode 100644 index 0000000..70411d3 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/SectionsRepository.java @@ -0,0 +1,9 @@ +package enseirb.myinpulse.postgres_db.repository; + +import enseirb.myinpulse.postgres_db.model.Sections; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; + +@RepositoryRestResource +public interface SectionsRepository extends JpaRepository { +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/UtilisateursRepository.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/UtilisateursRepository.java new file mode 100644 index 0000000..28aca29 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/postgres_db/repository/UtilisateursRepository.java @@ -0,0 +1,13 @@ +package enseirb.myinpulse.postgres_db.repository; + +import enseirb.myinpulse.postgres_db.model.Utilisateurs; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; + +@RepositoryRestResource +public interface UtilisateursRepository extends JpaRepository { + + /* @Query("SELECT u from Utilisateurs u") + Utilisateurs findAllUtilisateurs(); */ + +} diff --git a/MyINPulse-back/src/main/resources/application.properties b/MyINPulse-back/src/main/resources/application.properties index 6d6825f..80f88b1 100644 --- a/MyINPulse-back/src/main/resources/application.properties +++ b/MyINPulse-back/src/main/resources/application.properties @@ -2,3 +2,10 @@ spring.application.name=myinpulse spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://localhost:7080/realms/test/protocol/openid-connect/certs spring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:7080/realms/test logging.level.org.springframework.security=DEBUG +spring.datasource.url=jdbc:postgresql://localhost:5432/${MyINPulse_DB} +spring.datasource.username=${POSTGRES_USER} +spring.datasource.password=${POSTGRES_PASSWORD} +spring.jpa.hibernate.ddl-auto=update +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect + +spring.data.rest.base-path=/my/base/path \ No newline at end of file diff --git a/MyINPulse-back/src/main/resources/data.sql b/MyINPulse-back/src/main/resources/data.sql new file mode 100644 index 0000000..f1a2289 --- /dev/null +++ b/MyINPulse-back/src/main/resources/data.sql @@ -0,0 +1,63 @@ +INSERT INTO projets (nom_projet, logo, date_creation, status_projet) VALUES +('Eau du robinet', decode('013d7d16d7ad4fefb61bd95b765c8ceb', 'hex'), TO_DATE('01-OCT-2023', 'DD-MON-YYYY'), 'En cours'), +('Air oxygéné', decode('150647a0984e8f228cd14b54', 'hex'), TO_DATE('04-APR-2024', 'DD-MON-YYYY'), 'En cours'), +('Débat concours', decode('022024abd5486e245c145dda65116f', 'hex'), TO_DATE('22-NOV-2023', 'DD-MON-YYYY'), 'Suspendu'), +('HDeirbMI', decode('ab548d6c1d595a2975e6476f544d14c55a', 'hex'), TO_DATE('07-DEC-2024', 'DD-MON-YYYY'), 'Lancement'); + + +INSERT INTO utilisateurs (nom, prenom, mail_principal, mail_secondaire, numero_telephone) VALUES +('Dupont', 'Dupond', 'super@mail.fr', 'super2@mail.fr', '06 45 72 45 98'), +('Martin', 'Matin', 'genial@mail.fr', 'genial2@mail.fr', '06 52 14 58 73'), +('Charvet', 'Lautre', 'mieux@tmail.fr', 'mieux2@tmail.fr', '07 49 82 16 35'), +('Leguez', 'Theo', 'bof@mesmails.fr', 'bof2@mesmails.fr', '+33 6 78 14 25 29'), +('Kia', 'Bi', 'special@mail.fr', 'special2@mail.fr', '07 65 31 38 95'); + +INSERT INTO entrepreneurs (ecole, filiere, status_snee) VALUES +('ENSEIRB-MATMECA', 'INFO', TRUE), +('ENSC', 'Cognitique', TRUE), +('ENSEIRB-MATMECA', 'MATMECA', FALSE), +('SupOptique', 'Classique', TRUE), +('ENSEGID', 'Géoscience', FALSE), +('ENSMAC', 'Matériaux composites - Mécanique', FALSE); + +INSERT INTO sections (titre, contenu_section, date_modification) VALUES +("Problème", "les problèmes...", TO_DATE('15-JAN-2025', 'DD-MON-YYYY')), +("Segment de client", "Le segment AB passant le client n°8 est de longueur 32mm. + Le segment BC a quant à lui un longueur de 28mm. Quelle la longueur du segment AC ?", TO_DATE('12-OCT-2022', 'DD-MON-YYYY')), +("Proposition de valeur unique", "'Son prix est de 2594€' 'Ah oui c'est unique en effet'", TO_DATE('25-MAY-2024', 'DD-MON-YYYY')), +("Solution", "Un problème ? Une solution", TO_DATE('08-FEB-2024', 'DD-MON-YYYY')), +("Canaux", "Ici nous avons la Seine, là-bas le Rhin, oh et plus loin le canal de Suez", TO_DATE('19-JUL-2023', 'DD-MON-YYYY')), +("Sources de revenus", "Y'en n'a pas on est pas payé. Enfin y'a du café quoi", TO_DATE('12-JAN-2025', 'DD-MON-YYYY')), +("Structure des coûts", "'Ah oui là ça va faire au moins 1000€ par mois', Eirbware", TO_DATE('06-FEB-2025', 'DD-MON-YYYY')), +("Indicateurs clés", "On apprend les clés comme des badges, ça se fait", TO_DATE('05-FEB-2025', 'DD-MON-YYYY')), +("Avantages concurrentiel", "On est meilleur", TO_DATE('23-APR-2024', 'DD-MON-YYYY')); + +INSERT INTO rendez_vous (date_rdv, heure_rdv, duree_rdv, lieu_rdv, sujet_rdv) VALUES +(TO_DATE('24-DEC-2023', 'DD-MON-YYYY'), '00:00:00', '00:37:53', "À la maison", "Ouvrir les cadeaux"), +(TO_DATE('15-AUG-2024', 'DD-MON-YYYY'), '22:35:00', '00:12:36', "Sur les quais ou dans un champ probablement", "BOUM BOUM les feux d'artifices (on fête quoi déjà ?)"), +(TO_DATE('29-FEB-2023', 'DD-MON-YYYY'), '14:20:00', '00:20:00', "Salle TD 15", "Ah mince c'est pas une année bissextile !"), +(TO_DATE('23-JAN-2024', 'DD-MON-YYYY'), '12:56:27', '11:03:33', "Là où le vent nous porte", "Journée la plus importante de l'année"), +(TO_DATE('25-AUG-2025', 'DD-MON-YYYY'), '00:09:00', '01:00:00', "Euh c'est par où l'amphi 56 ?", "Rentrée scolaire (il fait trop froid c'est quoi ça on est en août)"); + + +INSERT INTO comptes_rendus (contenu_compte_rendu) VALUES +("Ah oui ça c'est super, ah ouais j'aime bien, bien vu de penser à ça"), +("Bonne réunion"), +("Ouais, j'ai rien compris mais niquel on fait comme vous avez dit"), +("Non non ça va pas du tout ce que tu me proposes, faut tout refaire"), +("Réponse de la DSI : non"), +("Trop dommage qu'Apple ait sorti leur logiciel avant nous, on avait la même idée et tout on aurait tellement pu leur faire de la concurrence"); + + + + + + + + + + + + + + diff --git a/MyINPulse-back/src/main/resources/schema.sql b/MyINPulse-back/src/main/resources/schema.sql new file mode 100644 index 0000000..4bd1034 --- /dev/null +++ b/MyINPulse-back/src/main/resources/schema.sql @@ -0,0 +1,122 @@ +DROP TABLE IF EXISTS projets CASCADE; +DROP TABLE IF EXISTS utilisateurs CASCADE; +DROP TABLE IF EXISTS entrepreneurs CASCADE; +DROP TABLE IF EXISTS administrateurs CASCADE; +DROP TABLE IF EXISTS sections CASCADE; +DROP TABLE IF EXISTS rendez_vous CASCADE; +DROP TABLE IF EXISTS comptes_rendus CASCADE; +DROP TABLE IF EXISTS concerner CASCADE; +DROP TABLE IF EXISTS formes CASCADE; + +CREATE TABLE projets +( +id_projet SERIAL NOT NULL, +nom_projet VARCHAR(255) , +logo BYTEA , +date_creation DATE , +status_projet VARCHAR(255) , +CONSTRAINT pk_projet PRIMARY KEY (id_projet) ); + + +CREATE TABLE utilisateurs +( +id_utilisateur SERIAL NOT NULL, +nom_utilisateur VARCHAR(255) , +prenom_utilisateur VARCHAR(255) , +mail_principal VARCHAR(255) , +mail_secondaire VARCHAR(255) , +numero_telephone VARCHAR(15) , +CONSTRAINT pk_utilisateur PRIMARY KEY (id_utilisateur) ); + +CREATE TABLE entrepreneurs +( +id_entrepreneur SERIAL REFERENCES utilisateurs (id_utilisateur), +ecole VARCHAR(255) , +filiere VARCHAR(255) , +status_snee BOOLEAN , +CONSTRAINT pk_entrepreneur PRIMARY KEY (id_entrepreneur) ); + +CREATE TABLE administrateurs +( +id_administrateur SERIAL REFERENCES utilisateurs (id_utilisateur), +CONSTRAINT pk_administrateur PRIMARY KEY (id_administrateur) ); + +CREATE TABLE sections +( +id_section SERIAL NOT NULL, +titre VARCHAR(255) , +contenu_section TEXT , +date_modification TIMESTAMP , +CONSTRAINT pk_section PRIMARY KEY (id_section) ); + +CREATE TABLE rendez_vous +( +id_rdv SERIAL NOT NULL, +date_rdv DATE , +heure_rdv TIME , +duree_rdv TIME , +lieu_rdv VARCHAR(255) , +sujet_rdv TEXT , +CONSTRAINT pk_rdv PRIMARY KEY (id_rdv) ); + +CREATE TABLE comptes_rendus +( +id_compte_rendu SERIAL NOT NULL, +contenu_compte_rendu TEXT , +CONSTRAINT pk_compte_rendu PRIMARY KEY (id_compte_rendu) ); + +CREATE TABLE concerner +( +id_section SERIAL REFERENCES sections (id_section), +id_rdv SERIAL REFERENCES sections (id_rdv), +CONSTRAINT pk_concerner PRIMARY KEY (id_section, id_rdv) ); + + +ALTER TABLE projets + ADD CONSTRAINT fk1_projet FOREIGN KEY (id_administrateur) + REFERENCES administrateurs (id_administrateur) + ON DELETE CASCADE; + +ALTER TABLE projets + ADD CONSTRAINT fk2_projet FOREIGN KEY (id_entrepreneur_participation) + REFERENCES entrepreneurs (id_entrepreneur) + ON DELETE CASCADE; + +ALTER TABLE entrepreneurs + ADD CONSTRAINT fk1_entrepreneur FOREIGN KEY (id_projet_propose) + REFERENCES projets (id_projet) + ON DELETE CASCADE; + +ALTER TABLE sections + ADD CONSTRAINT fk1_section FOREIGN KEY (id_projet) + REFERENCES projets (id_projet) + ON DELETE CASCADE; + +ALTER TABLE sections + ADD CONSTRAINT fk2_section FOREIGN KEY (id_administrateur) + REFERENCES administrateurs (id_administrateur) + ON DELETE CASCADE; + +ALTER TABLE rendez-vous + ADD CONSTRAINT fk1_rdv FOREIGN KEY (id_entrepreneur) + REFERENCES entrepreneurs (id_entrepreneur) + ON DELETE CASCADE; + +ALTER TABLE rendez-vous + ADD CONSTRAINT fk2_rdv FOREIGN KEY (id_administrateur) + REFERENCES administrateurs (id_administrateur) + ON DELETE CASCADE; + +ALTER TABLE comptes-rendus + ADD CONSTRAINT fk1_compte_rendu FOREIGN KEY (id_rdv) + REFERENCES rendez_vous (id_rdv) + ON DELETE CASCADE; + + + + + + + + + diff --git a/config/backdev.docker-compose.yaml b/config/backdev.docker-compose.yaml index a73a010..607fa49 100644 --- a/config/backdev.docker-compose.yaml +++ b/config/backdev.docker-compose.yaml @@ -2,8 +2,8 @@ services: postgres: image: postgres:latest container_name: MyINPulse-DB - #ports: - # - 5432:5432 + ports: + - 5432:5432 volumes: - ./postgres:/var/lib/postgresql/data environment: diff --git a/config/backdev.main.env b/config/backdev.main.env index 6f32124..6ddb261 100644 --- a/config/backdev.main.env +++ b/config/backdev.main.env @@ -3,4 +3,8 @@ POSTGRES_USER=keycloak_db_user POSTGRES_PASSWORD=keycloak_db_user_password KEYCLOAK_ADMIN=admin KEYCLOAK_ADMIN_PASSWORD=admin -KEYCLOAK_HOSTNAME=localhost \ No newline at end of file +KEYCLOAK_HOSTNAME=localhost + +MYINPULSE_DB=MyINPulse_db +MYINPULSE_DB_USER=MyINPulse_db_user +MYINPULSE_DB_PASS=MyINPulse_db_user_pass \ No newline at end of file diff --git a/front/MyINPulse-front/src/components/temp-modal.vue b/front/MyINPulse-front/src/components/temp-modal.vue new file mode 100644 index 0000000..a8dd50e --- /dev/null +++ b/front/MyINPulse-front/src/components/temp-modal.vue @@ -0,0 +1,18 @@ + + + + +