Skip to content

Commit

Permalink
[SKRB-141] feat: 행사 생성 RequestDto 구현 (#11)
Browse files Browse the repository at this point in the history
  • Loading branch information
hyeon-z authored Oct 25, 2023
1 parent d2db373 commit fc0cf6c
Show file tree
Hide file tree
Showing 6 changed files with 168 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,99 @@
package com.spaceclub.event.controller.dto;

import com.spaceclub.event.domain.BankInfo;
import com.spaceclub.event.domain.Category;
import com.spaceclub.event.domain.Event;
import com.spaceclub.event.domain.EventInfo;
import com.spaceclub.event.domain.FormInfo;
import com.spaceclub.event.domain.TicketInfo;

public record CreateEventRequest(Long id) {
import java.time.LocalDate;
import java.time.LocalTime;

public record CreateEventRequest(
Category category,
Long clubId,
EventInfoRequest eventInfo,
TicketInfoRequest ticketInfo,
BankInfoRequest bankInfo,
FormInfoRequest formInfo
) {

public record EventInfoRequest(
String title,
String content,
LocalDate startDate,
String location,
int capacity,
String poster
) {

public EventInfo toEntity() {
return EventInfo.builder()
.title(title)
.content(content)
.startDate(startDate)
.location(location)
.capacity(capacity)
.poster(poster)
.build();
}

}

public record TicketInfoRequest(
int cost,
int maxTicketCount
) {

public TicketInfo toEntity() {
return TicketInfo.builder()
.cost(cost)
.maxTicketCount(maxTicketCount)
.build();
}

}

public record BankInfoRequest(
String name,
String accountNumber
) {

public BankInfo toEntity() {
return BankInfo.builder()
.bankName(name)
.bankAccountNumber(accountNumber)
.build();
}

}

public record FormInfoRequest(
LocalDate openDate,
LocalTime openTime,
LocalDate closeDate,
LocalTime closeTime
) {

public FormInfo toEntity() {
return FormInfo.builder()
.formOpenDate(openDate.atTime(openTime))
.formCloseDate(closeDate.atTime(closeTime))
.build();
}

}

public Event toEntity() {
return new Event();
return Event.builder()
.category(category)
.clubId(clubId)
.eventInfo(eventInfo.toEntity())
.ticketInfo(ticketInfo.toEntity())
.bankInfo(bankInfo.toEntity())
.formInfo(formInfo.toEntity())
.build();
}

}
9 changes: 8 additions & 1 deletion src/main/java/com/spaceclub/event/domain/BankInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import jakarta.persistence.Embeddable;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

Expand All @@ -12,6 +13,12 @@ public class BankInfo {

private String bankName;

private String accountNumber;
private String bankAccountNumber;

@Builder
public BankInfo(String bankName, String bankAccountNumber) {
this.bankName = bankName;
this.bankAccountNumber = bankAccountNumber;
}

}
33 changes: 18 additions & 15 deletions src/main/java/com/spaceclub/event/domain/Event.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,12 @@
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@Entity
//@NoArgsConstructor(access = AccessLevel.PROTECTED)
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Event extends BaseTimeEntity {

@Id
Expand All @@ -27,17 +26,8 @@ public class Event extends BaseTimeEntity {
@Enumerated(EnumType.STRING)
private Category category;

private String title;

private String content;

private String poster;

private LocalDateTime startDate;

private String location;

private int capacity;
@Embedded
private EventInfo eventInfo;

@Embedded
private BankInfo bankInfo;
Expand All @@ -50,6 +40,19 @@ public class Event extends BaseTimeEntity {

private Long clubId;

public Event() {}
@Builder
public Event(Category category,
EventInfo eventInfo,
BankInfo bankInfo,
TicketInfo ticketInfo,
FormInfo formInfo,
Long clubId) {
this.category = category;
this.eventInfo = eventInfo;
this.bankInfo = bankInfo;
this.ticketInfo = ticketInfo;
this.formInfo = formInfo;
this.clubId = clubId;
}

}
38 changes: 38 additions & 0 deletions src/main/java/com/spaceclub/event/domain/EventInfo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.spaceclub.event.domain;

import jakarta.persistence.Embeddable;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.time.LocalDate;

@Embeddable
@EqualsAndHashCode
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class EventInfo {

private String title;

private String content;

private LocalDate startDate;

private String location;

private int capacity;

private String poster;

@Builder
public EventInfo(String title, String content, LocalDate startDate, String location, int capacity, String poster) {
this.title = title;
this.content = content;
this.startDate = startDate;
this.location = location;
this.capacity = capacity;
this.poster = poster;
}

}
7 changes: 7 additions & 0 deletions src/main/java/com/spaceclub/event/domain/FormInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import jakarta.persistence.Embeddable;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

Expand All @@ -16,4 +17,10 @@ public class FormInfo {

private LocalDateTime formCloseDate;

@Builder
public FormInfo(LocalDateTime formOpenDate, LocalDateTime formCloseDate) {
this.formOpenDate = formOpenDate;
this.formCloseDate = formCloseDate;
}

}
7 changes: 7 additions & 0 deletions src/main/java/com/spaceclub/event/domain/TicketInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import jakarta.persistence.Embeddable;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

Expand All @@ -14,4 +15,10 @@ public class TicketInfo {

private int cost;

@Builder
public TicketInfo(int maxTicketCount, int cost) {
this.maxTicketCount = maxTicketCount;
this.cost = cost;
}

}

0 comments on commit fc0cf6c

Please sign in to comment.