Skip to content
Open
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,13 @@
package com.ironhack.association;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AssociationApplication {

public static void main(String[] args) {
SpringApplication.run(AssociationApplication.class, args);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
package com.ironhack.association.model;

import jakarta.persistence.*;

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

@Entity
public class Chapter {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer chapterId;
private String name;
private String district;

@ManyToOne(cascade = CascadeType.ALL)
private Member president;

@OneToMany(mappedBy = "chapter")
private List<Member> members = new ArrayList<>();

public Chapter() {
}

public Chapter(String name, String district) {
this.name = name;
this.district = district;
}

public Chapter(String name, String district, Member president, List<Member> members) {
this.name = name;
this.district = district;
this.president = president;
this.members = members;
}

public Integer getChapterId() {
return chapterId;
}

public void setChapterId(Integer chapterId) {
this.chapterId = chapterId;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getDistrict() {
return district;
}

public void setDistrict(String district) {
this.district = district;
}

public Member getPresident() {
return president;
}

public void setPresident(Member president) {
this.president = president;
}

public List<Member> getMembers() {
return members;
}

public void setMembers(List<Member> members) {
this.members = members;
}

@Override
public String toString() {
return "Chapter{" +
"chapterId=" + chapterId +
", name='" + name + '\'' +
", district='" + district + '\'' +
", president=" + president +
", members=" + members +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
package com.ironhack.association.model;

import jakarta.persistence.*;

import java.time.LocalDate;

@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer memberId;
private String name;

@Enumerated(EnumType.STRING)
private Status status;

private LocalDate renewalDate;

@ManyToOne
@JoinColumn(name = "chapter_id")
private Chapter chapter;

public Member() {
}

public Member(String name, Status status, LocalDate renewalDate, Chapter chapter) {
this.name = name;
this.status = status;
this.renewalDate = renewalDate;
this.chapter = chapter;
}

public Integer getMemberId() {
return memberId;
}

public void setMemberId(Integer memberId) {
this.memberId = memberId;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Status getStatus() {
return status;
}

public void setStatus(Status status) {
this.status = status;
}

public LocalDate getRenewalDate() {
return renewalDate;
}

public void setRenewalDate(LocalDate renewalDate) {
this.renewalDate = renewalDate;
}

public Chapter getChapter() {
return chapter;
}

public void setChapter(Chapter chapter) {
this.chapter = chapter;
}

@Override
public String toString() {
return "Member{" +
"memberId=" + memberId +
", name='" + name + '\'' +
", status=" + status +
", renewalDate=" + renewalDate +
", chapter=" + chapter +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.ironhack.association.model;

public enum Status {
ACTIVE,
LAPSED
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.ironhack.association.repository;

import com.ironhack.association.model.Chapter;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ChapterRepository extends JpaRepository<Chapter, Integer> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.ironhack.association.repository;

import com.ironhack.association.model.Member;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface MemberRepository extends JpaRepository<Member, Integer> {
}
17 changes: 17 additions & 0 deletions association/src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
spring.application.name=association

spring.datasource.url=jdbc:mysql://localhost:3306/nurse_association?createDatabaseIfNotExist=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true

#PARA OCULTAR EL BANNER DE SPRING
spring.main.banner-mode=off
#PARA HABILITAR COLORES
spring.output.ansi.enabled=ALWAYS

// PARA QUE NO SALGA TANTO CONTENIDO CUANDO SALE UN ERROR
server.error.include-stacktrace=never
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.ironhack.association;

import com.ironhack.association.model.Chapter;
import com.ironhack.association.model.Member;
import com.ironhack.association.model.Status;
import com.ironhack.association.repository.ChapterRepository;
import com.ironhack.association.repository.MemberRepository;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.time.LocalDate;
import java.util.Optional;

import static org.junit.jupiter.api.Assertions.*;

@SpringBootTest
class AssociationApplicationTests {


@Autowired
private ChapterRepository chapterRepository;

@Autowired
private MemberRepository memberRepository;

@Test
public void saveChapters_chapterAndMembers_correctSave() {
Chapter chapter = new Chapter("Chapter 1 Test", "Madrid");

Member member1 = new Member("Bob", Status.ACTIVE, LocalDate.of(2025, 8, 20), chapter);

Member member2 = new Member("John", Status.LAPSED, LocalDate.of(2025, 10, 15), chapter);

Member president = new Member("Sara", Status.ACTIVE, LocalDate.of(2025, 5, 10), chapter);

chapter.setPresident(president);
chapter.getMembers().add(member1);
chapter.getMembers().add(member2);

chapterRepository.save(chapter);
memberRepository.save(president);
memberRepository.save(member1);
memberRepository.save(member2);

Optional<Chapter> chapterOptional = chapterRepository.findById(chapter.getChapterId());
assertTrue(chapterOptional.isPresent());
}
}
13 changes: 13 additions & 0 deletions event/src/main/java/com/ironhack/event/EventApplication.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.ironhack.event;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class EventApplication {

public static void main(String[] args) {
SpringApplication.run(EventApplication.class, args);
}

}
33 changes: 33 additions & 0 deletions event/src/main/java/com/ironhack/event/model/Conference.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.ironhack.event.model;

import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.OneToMany;
import jakarta.persistence.PrimaryKeyJoinColumn;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

@Entity
@PrimaryKeyJoinColumn(name = "conference_id")
public class Conference extends Event{

@OneToMany(mappedBy = "conference", fetch = FetchType.LAZY)
private List<Speaker> speakers = new ArrayList<>();

public Conference() {
}

public Conference(LocalDate date, Integer duration, String location, String title) {
super(date, duration, location, title);
}

public List<Speaker> getSpeakers() {
return speakers;
}

public void setSpeakers(List<Speaker> speakers) {
this.speakers = speakers;
}
}
Loading