Skip to content
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

๐Ÿš€ 3๋‹จ๊ณ„ - ์ˆ˜๊ฐ•์‹ ์ฒญ(DB ์ ์šฉ) #531

Open
wants to merge 37 commits into
base: kimsunghyun1995
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
fd5bc40
doc: step3 ์š”๊ตฌ์‚ฌํ•ญ ์ •๋ฆฌ
kimsunghyun1995 Apr 30, 2024
683b74c
feat: ์ˆ˜๊ฐ•์‹ ์ฒญ๋งŒ์„ ์œ„ํ•œ ํด๋ž˜์Šค Enrollment ์ถ”๊ฐ€
kimsunghyun1995 Apr 30, 2024
bb4e0ee
feat: imageInfo ํ…Œ์ด๋ธ” ๋งคํ•‘ ๋ฐ CRUD ๊ธฐ๋Šฅ ๊ตฌํ˜„
kimsunghyun1995 Apr 30, 2024
c79a28c
feat: ์ฟผ๋ฆฌ ์‚ฌ์šฉ์„ ์œ„ํ•œ Getter ์ถ”๊ฐ€
kimsunghyun1995 Apr 30, 2024
b2e8b79
feat: image_info DDL ๋ฐ ์˜ˆ์‹œ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
kimsunghyun1995 Apr 30, 2024
0ca406b
test: imageInfo Repository ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
kimsunghyun1995 Apr 30, 2024
b0584e8
refactor: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํŒจํ‚ค์ง€ ์ •๋ฆฌ
kimsunghyun1995 Apr 30, 2024
bec5bda
doc: ํด๋ž˜์Šค DB ๋งคํ•‘ ์ •๋ณด ์ˆ˜์ •
kimsunghyun1995 Apr 30, 2024
939744c
refactor: ์ˆ˜๊ฐ•์‹ ์ฒญ ๊ธˆ์•ก๋„ Session -> Enrollment๋กœ ์ด๋™
kimsunghyun1995 Apr 30, 2024
8de065d
feat: enrollment repository ์ถ”๊ฐ€
kimsunghyun1995 Apr 30, 2024
611a834
feat: nsUser ํ…Œ์ด๋ธ” ํ•„๋“œ ์ถ”๊ฐ€ ๋ฐ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
kimsunghyun1995 May 2, 2024
5fef765
feat: nsUser์— session_id ํ•„๋“œ ์ถ”๊ฐ€ ๋ฐ findallBySessionId ์ฟผ๋ฆฌ ์ถ”๊ฐ€
kimsunghyun1995 May 2, 2024
bbd2583
test: findAllBySessionId ๋ฉ”์†Œ๋“œ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
kimsunghyun1995 May 2, 2024
969a55e
fix: ๋ฐ์ดํ„ฐ ์ˆ˜์ •
kimsunghyun1995 May 2, 2024
9e4dbf2
refactor: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” import ์ •๋ฆฌ ๋ฐ final ์ถ”๊ฐ€
kimsunghyun1995 May 2, 2024
de2692c
feat: EnrollRepository ๊ธฐ๋Šฅ ๊ตฌํ˜„
kimsunghyun1995 May 2, 2024
f1baa1e
test: EnrollmentRepository ํ…Œ์ŠคํŠธ
kimsunghyun1995 May 2, 2024
b49e4f4
feat: ์ฟผ๋ฆฌ ์‚ฌ์šฉ์„ ์œ„ํ•œ getter ์ถ”๊ฐ€
kimsunghyun1995 May 2, 2024
a7d6469
feat: session๊ณผ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ์œ„ํ•œ sessionId ํ•„๋“œ ์ถ”๊ฐ€
kimsunghyun1995 May 3, 2024
6b339bf
fix: mapper ์‚ฌ์šฉ์„ ์œ„ํ•œ ์ถ”์ƒ ํด๋ž˜์Šค ์‚ญ์ œ
kimsunghyun1995 May 3, 2024
5a9ec82
refactor: sessionId ํ•„๋“œ ์ถ”๊ฐ€๋กœ ์ธํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ •
kimsunghyun1995 May 3, 2024
885a682
doc: ์ง„ํ–‰์ƒํ™ฉ ์ •๋ฆฌ
kimsunghyun1995 May 3, 2024
f475bad
feat: session ํ…Œ์ด๋ธ” ๋ฐ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
kimsunghyun1995 May 3, 2024
a446509
feat: session ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•œ enroll๊ณผ iamgeinfo ๋ฐ์ดํ„ฐ sessionId๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„
kimsunghyun1995 May 3, 2024
9e66e65
feat: notFound ์ต์…‰์…˜ ์ถ”๊ฐ€
kimsunghyun1995 May 3, 2024
fad7a82
feat: sessionRepository ๊ตฌํ˜„์ฒด ๊ตฌํ˜„
kimsunghyun1995 May 3, 2024
876b073
test: sessionRepository ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
kimsunghyun1995 May 3, 2024
d17d14c
refactor: ๋ถ€ ์ƒ์„ฑ์ž๊ฐ€ ์ฃผ ์ƒ์„ฑ์ž ํ˜ธ์ถœํ•˜๋„๋ก ์ฝ”๋“œ ์ •๋ฆฌ
kimsunghyun1995 May 16, 2024
232fd52
refactor: ์ˆ˜๊ฐ•์‹ ์ฒญ ์ธ์›์— ๋Œ€ํ•œ ํ™•์ธ ๋ฉ”์†Œ๋“œ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ
kimsunghyun1995 May 16, 2024
9822a8c
feature: NsUser : Session์˜ ๊ด€๊ณ„(M:N)์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ๋„๋ฉ”์ธ ์ƒ์„ฑ
kimsunghyun1995 May 22, 2024
04eef92
feature: student_enrollment_information db ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
kimsunghyun1995 May 22, 2024
9262189
fix: ๊ธฐ์กด M:N ๊ด€๊ณ„ ๋„๋ฉ”์ธ ์ˆ˜์ •
kimsunghyun1995 May 22, 2024
5e6f227
fix: studentEnrollmentInformation ๋„๋ฉ”์ธ ์ƒ์„ฑ์œผ๋กœ ์ธํ•œ repository ์ˆ˜์ •
kimsunghyun1995 May 22, 2024
5811399
feat: User ๋„๋ฉ”์ธ์— ๋ณต์ˆ˜๊ฐœ id๋กœ ์กฐํšŒํ•˜๋Š” in ์ฟผ๋ฆฌ ์ถ”๊ฐ€
kimsunghyun1995 May 22, 2024
5c63ef1
test: ๋ณต์ˆ˜๊ฐœ์˜ ID๋กœ ์กฐํšŒํ•˜๋Š” ์ฟผ๋ฆฌ ํ…Œ์ŠคํŠธ
kimsunghyun1995 May 22, 2024
627a90b
test: ์˜์กด์„ฑ ์ถ”๊ฐ€
kimsunghyun1995 May 22, 2024
f0e800a
fix: enrollment์— User ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑํ•˜๋Š” ๋ถ€๋ถ„ ์ถ”๊ฐ€
kimsunghyun1995 May 22, 2024
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
34 changes: 30 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,38 @@
- [x] ์œ ๋ฃŒ ๊ฐ•์˜๋Š” ์ˆ˜๊ฐ•์ƒ์ด ๊ฒฐ์ œํ•œ ๊ธˆ์•ก๊ณผ ์ˆ˜๊ฐ•๋ฃŒ๊ฐ€ ์ผ์น˜ํ•  ๋•Œ ์ˆ˜๊ฐ• ์‹ ์ฒญ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
- [x] ๊ฐ•์˜ ์ƒํƒœ๋Š” ์ค€๋น„์ค‘, ๋ชจ์ง‘์ค‘, ์ข…๋ฃŒ 3๊ฐ€์ง€ ์ƒํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค.
- [x] ๊ฐ•์˜ ์ˆ˜๊ฐ•์‹ ์ฒญ์€ ๊ฐ•์˜ ์ƒํƒœ๊ฐ€ ๋ชจ์ง‘์ค‘์ผ ๋•Œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
- [ ] ์œ ๋ฃŒ ๊ฐ•์˜์˜ ๊ฒฝ์šฐ ๊ฒฐ์ œ๋Š” ์ด๋ฏธ ์™„๋ฃŒํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•˜๊ณ  ์ดํ›„ ๊ณผ์ •์„ ๊ตฌํ˜„ํ•œ๋‹ค.
- [ ] ๊ฒฐ์ œ๋ฅผ ์™„๋ฃŒํ•œ ๊ฒฐ์ œ ์ •๋ณด๋Š” payments ๋ชจ๋“ˆ์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๋ฉฐ, ๊ฒฐ์ œ ์ •๋ณด๋Š” Payment ๊ฐ์ฒด์— ๋‹ด๊ฒจ ๋ฐ˜ํ•œ๋œ๋‹ค.

- [x] ์œ ๋ฃŒ ๊ฐ•์˜์˜ ๊ฒฝ์šฐ ๊ฒฐ์ œ๋Š” ์ด๋ฏธ ์™„๋ฃŒํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•˜๊ณ  ์ดํ›„ ๊ณผ์ •์„ ๊ตฌํ˜„ํ•œ๋‹ค.
- [x] ๊ฒฐ์ œ๋ฅผ ์™„๋ฃŒํ•œ ๊ฒฐ์ œ ์ •๋ณด๋Š” payments ๋ชจ๋“ˆ์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๋ฉฐ, ๊ฒฐ์ œ ์ •๋ณด๋Š” Payment ๊ฐ์ฒด์— ๋‹ด๊ฒจ ๋ฐ˜ํ•œ๋œ๋‹ค.


## ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ
- DB ํ…Œ์ด๋ธ” ์„ค๊ณ„ ์—†์ด ๋„๋ฉ”์ธ ๋ชจ๋ธ๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•œ๋‹ค.
- ๋„๋ฉ”์ธ ๋ชจ๋ธ์€ TDD๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.
- ๋‹จ, Service ํด๋ž˜์Šค๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ์—†์–ด๋„ ๋œ๋‹ค.
- ๋‹ค์Œ ๋™์˜์ƒ์„ ์ฐธ๊ณ ํ•ด DB ํ…Œ์ด๋ธ”๋ณด๋‹ค ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ๋จผ์ € ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•œ๋‹ค.
- ๋‹ค์Œ ๋™์˜์ƒ์„ ์ฐธ๊ณ ํ•ด DB ํ…Œ์ด๋ธ”๋ณด๋‹ค ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ๋จผ์ € ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•œ๋‹ค.

# step3
## ์ˆ˜๊ฐ• ์‹ ์ฒญ ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ
- [x] ์ˆ˜๊ฐ• ์‹ ์ฒญ ๋กœ์ง์— ํ•„์š”ํ•œ ๊ฐ’๋งŒ ๊ฐ€์ง€๋„๋ก Enrollment์™€ ๊ฐ™์€ ๊ฐ์ฒด ์ถ”๊ฐ€
- [ ] Session ๋งคํ•‘
- Long id
- long course_id
- LocalDateTime startDate
- LocalDateTime endDate

- [x] Enrollment ๋งคํ•‘
- Long id
- int sessionStatus
- int maximumNumberOfParticipants
- long sessionPrice

- [x] ImageInfo ๋งคํ•‘
- int imageSize
- int width
- int height
- String imagetype

## ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ
์•ž ๋‹จ๊ณ„์—์„œ ๊ตฌํ˜„ํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ DB ํ…Œ์ด๋ธ”๊ณผ ๋งคํ•‘ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.
CRUD ์ฟผ๋ฆฌ์™€ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์ง‘์ค‘ํ•˜๊ธฐ ๋ณด๋‹ค ํ…Œ์ด๋ธ”์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ฐ์ฒด ๋งคํ•‘ํ•˜๋Š” ๋ถ€๋ถ„์— ์ง‘์ค‘ํ•œ๋‹ค.
Payment๋Š” ํ…Œ์ด๋ธ” ๋งคํ•‘์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
4 changes: 4 additions & 0 deletions src/main/java/nextstep/session/NotFoundException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package nextstep.session;

public class NotFoundException extends RuntimeException {
}
105 changes: 105 additions & 0 deletions src/main/java/nextstep/session/domain/Enrollment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
package nextstep.session.domain;

import nextstep.users.domain.NsUser;
import nextstep.users.domain.NsUsers;

public class Enrollment {
private static final int INCREASE_STUDENT = 1;
private long id;
private final int maximumNumberOfParticipants;
private final long sessionPrice;
private long sessionId;

private SessionStatus sessionStatus;
private NsUsers nsUsers;

public Enrollment(int maximumNumberOfParticipants, long sessionPrice) {
this(0L, maximumNumberOfParticipants, sessionPrice, SessionStatus.PREPARING, new NsUsers());
}

public Enrollment(long id, int maximumNumberOfParticipants, long sessionPrice, long sessionId) {
this(id, maximumNumberOfParticipants, sessionPrice, sessionId, SessionStatus.PREPARING, new NsUsers());
}

public Enrollment(long id, int maximumNumberOfParticipants, long sessionPrice, SessionStatus sessionStatus, NsUsers nsUsers) {
this.id = id;
this.maximumNumberOfParticipants = maximumNumberOfParticipants;
this.sessionPrice = sessionPrice;
this.sessionStatus = sessionStatus;
this.nsUsers = nsUsers;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๋ถ€ ์ƒ์„ฑ์ž๊ฐ€ ์ฃผ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ๊ตฌํ˜„

}

public Enrollment(long id, int maximumNumberOfParticipants, long sessionPrice, long sessionId, SessionStatus sessionStatus, NsUsers nsUsers) {
this.id = id;
this.maximumNumberOfParticipants = maximumNumberOfParticipants;
this.sessionPrice = sessionPrice;
this.sessionId = sessionId;
this.sessionStatus = sessionStatus;
this.nsUsers = nsUsers;
}

private boolean isSessionRegister() {
if (sessionStatus != SessionStatus.PREPARING) {
throw new IllegalArgumentException("๊ฐ•์˜๊ฐ€ ์ค€๋น„์ค‘์ด ์•„๋‹™๋‹ˆ๋‹ค.");
}
Comment on lines +33 to +35
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๋ฉ”์„œ๋“œ ์ด๋ฆ„์€ ์ˆ˜๊ฐ• ์‹ ์ฒญ ๊ฐ€๋Šฅ ๊ธฐ๊ฐ„์ž„์„ ๋ฌผ์–ด๋ณด๊ณ  ์žˆ๋Š”๋ฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๊ฒƒ์€ ๋ญ”๊ฐ€ ์–ด์ƒ‰ํ•จ
์•„๋ž˜์— ์žˆ๋Š” isParticipantsSession() ๋ฉ”์„œ๋“œ๋„ ๊ฐ™๋‹ค.
๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์—†์• ๋˜๊ฐ€ ์„ ํƒํ•˜๋ฉด ์–ด๋–จ๊นŒ?

return true;
}

private boolean isParticipantsSession() {
if (maximumNumberOfParticipants < nsUsers.getNumberOfStudent() + INCREASE_STUDENT) {
throw new IllegalArgumentException("์ˆ˜๊ฐ•์ธ์›์ด ์ดˆ๊ณผ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
}
return true;
}

public boolean isMaximumNumberOfParticipantsLimited(int numberOfParticipants) {
return numberOfParticipants <= maximumNumberOfParticipants;
}

public boolean isSamePaymentAndSessionPrice(int payment) {
return payment == sessionPrice;
}


private boolean isAddStudent() {
return isSessionRegister() && isParticipantsSession();
}

public void applySession(NsUser student) {
if (isAddStudent()) {
nsUsers.addStudent(student);
}
}

public long getId() {
return id;
}

public int getMaximumNumberOfParticipants() {
return maximumNumberOfParticipants;
}

public int getSessionStatus() {
return sessionStatus.getStatusValue();
}

public long getSessionPrice() {
return sessionPrice;
}

public long getSessionId() {
return sessionId;
}

@Override
public String toString() {
return "Enrollment{" +
"id=" + id +
", maximumNumberOfParticipants=" + maximumNumberOfParticipants +
", sessionPrice=" + sessionPrice +
", sessionStatus=" + sessionStatus +
", nsUsers=" + nsUsers +
'}';
}

}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Enrollment ๊ฐ์ฒด ๋„์ถœํ•œ ์  ๐Ÿ‘

12 changes: 12 additions & 0 deletions src/main/java/nextstep/session/domain/EnrollmentRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package nextstep.session.domain;

import java.util.Optional;

public interface EnrollmentRepository {
int save(Enrollment enrollment);
Optional<Enrollment> findById(long id);
int update(Enrollment enrollment);
int deleteById(long id);
Optional<Enrollment> findBySessionId(long id);

}
21 changes: 0 additions & 21 deletions src/main/java/nextstep/session/domain/FreeSession.java

This file was deleted.

49 changes: 47 additions & 2 deletions src/main/java/nextstep/session/domain/ImageInfo.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,63 @@
package nextstep.session.domain;

public class ImageInfo {
private long id;
private ImageSize imageSize;
private ImageReSolution imageReSolution;
private ImageType imageType;
private long sessionId;

public ImageInfo(String type) {
this(null, null, ImageType.getImageType(type));
this(0L, null, null, ImageType.getImageType(type));
}

public ImageInfo(ImageSize imageSize, ImageReSolution imageReSolution, ImageType imageType) {
public ImageInfo(long id, ImageSize imageSize, ImageReSolution imageReSolution, ImageType imageType) {
this.id = id;
this.imageSize = imageSize;
this.imageReSolution = imageReSolution;
this.imageType = imageType;
}

public ImageInfo(long id, ImageSize imageSize, ImageReSolution imageReSolution, ImageType imageType, long sessionId) {
this.id = id;
this.imageSize = imageSize;
this.imageReSolution = imageReSolution;
this.imageType = imageType;
this.sessionId = sessionId;
}

public long getId() {
return id;
}

public int getImageSize() {
return imageSize.getImageSize();
}

public int getImageHeight() {
return imageReSolution.getHeight();
}

public int getImageWidth() {
return imageReSolution.getWidth();
}

public String getImageType() {
return imageType.name();
}

public long getSessionId() {
return sessionId;
}

@Override
public String toString() {
return "ImageInfo{" +
"id=" + id +
", imageSize=" + imageSize +
", imageReSolution=" + imageReSolution +
", imageType=" + imageType +
'}';
}

}
16 changes: 16 additions & 0 deletions src/main/java/nextstep/session/domain/ImageInfoRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package nextstep.session.domain;

import java.util.Optional;

public interface ImageInfoRepository {
int save(ImageInfo imageInfo);

Optional<ImageInfo> findById(long id);

Optional<ImageInfo> findBySessionId(long sessionId);

int update(ImageInfo imageInfo);

int deleteById(long id);

}
16 changes: 16 additions & 0 deletions src/main/java/nextstep/session/domain/ImageReSolution.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,20 @@ private int isValidRatio(int width) {
return width / WIDTH_RATIO * HEIGHT_RATIO;
}

public int getWidth() {
return width;
}

public int getHeight() {
return height;
}

@Override
public String toString() {
return "ImageReSolution{" +
"width=" + width +
", height=" + height +
'}';
}

}
11 changes: 11 additions & 0 deletions src/main/java/nextstep/session/domain/ImageSize.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,15 @@ private void validateImageSize(long imageSize) {
}
}

public int getImageSize() {
return imageSize;
}

@Override
public String toString() {
return "ImageSize{" +
"imageSize=" + imageSize +
'}';
}

}
19 changes: 0 additions & 19 deletions src/main/java/nextstep/session/domain/PaidSession.java

This file was deleted.

8 changes: 8 additions & 0 deletions src/main/java/nextstep/session/domain/Period.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,12 @@ private void validateDates(LocalDateTime startDate, LocalDateTime endDate) {
}
}

public LocalDateTime getStartDate() {
return startDate;
}

public LocalDateTime getEndDate() {
return endDate;
}

}
Loading