Skip to content

Commit d008489

Browse files
authored
[Fix] 1차 스프린트 ERD 수정
2 parents 60f3d62 + b27f9f0 commit d008489

27 files changed

+340
-1154
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package eatda.domain;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.MappedSuperclass;
5+
import jakarta.persistence.PrePersist;
6+
import java.time.LocalDateTime;
7+
import lombok.Getter;
8+
9+
@Getter
10+
@MappedSuperclass
11+
public abstract class AuditingEntity {
12+
13+
@Column(name = "created_at", nullable = false)
14+
private LocalDateTime createdAt;
15+
16+
@PrePersist
17+
protected void onCreate() {
18+
this.createdAt = LocalDateTime.now();
19+
}
20+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package eatda.domain.article;
2+
3+
import eatda.domain.AuditingEntity;
4+
import jakarta.persistence.Column;
5+
import jakarta.persistence.Entity;
6+
import jakarta.persistence.GeneratedValue;
7+
import jakarta.persistence.GenerationType;
8+
import jakarta.persistence.Id;
9+
import jakarta.persistence.Table;
10+
import lombok.AccessLevel;
11+
import lombok.Getter;
12+
import lombok.NoArgsConstructor;
13+
14+
@Table(name = "article")
15+
@Entity
16+
@Getter
17+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
18+
public class Article extends AuditingEntity {
19+
20+
@Id
21+
@GeneratedValue(strategy = GenerationType.IDENTITY)
22+
private Long id;
23+
24+
@Column(nullable = false)
25+
private String title;
26+
27+
@Column(nullable = false)
28+
private String subtitle;
29+
30+
@Column(name = "article_url", nullable = false, length = 511)
31+
private String articleUrl;
32+
33+
@Column(name = "image_key", nullable = false, length = 511)
34+
private String imageKey;
35+
36+
public Article(String title, String subtitle, String articleUrl, String imageKey) {
37+
this.title = title;
38+
this.subtitle = subtitle;
39+
this.articleUrl = articleUrl;
40+
this.imageKey = imageKey;
41+
}
42+
}

src/main/java/eatda/domain/bookmark/Bookmark.java

Lines changed: 0 additions & 56 deletions
This file was deleted.

src/main/java/eatda/domain/member/Member.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package eatda.domain.member;
22

3+
import eatda.domain.AuditingEntity;
34
import eatda.exception.BusinessErrorCode;
45
import eatda.exception.BusinessException;
56
import jakarta.annotation.Nullable;
@@ -10,6 +11,7 @@
1011
import jakarta.persistence.GenerationType;
1112
import jakarta.persistence.Id;
1213
import jakarta.persistence.Table;
14+
import java.time.LocalDateTime;
1315
import lombok.AccessLevel;
1416
import lombok.Getter;
1517
import lombok.NoArgsConstructor;
@@ -18,7 +20,7 @@
1820
@Entity
1921
@Getter
2022
@NoArgsConstructor(access = AccessLevel.PROTECTED)
21-
public class Member {
23+
public class Member extends AuditingEntity {
2224

2325
private static final String EMAIL_REGEX = "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$";
2426

src/main/java/eatda/domain/menu/Discount.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/main/java/eatda/domain/menu/Menu.java

Lines changed: 0 additions & 74 deletions
This file was deleted.

src/main/java/eatda/domain/menu/Price.java

Lines changed: 0 additions & 33 deletions
This file was deleted.
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package eatda.domain.store;
2+
3+
import eatda.domain.AuditingEntity;
4+
import eatda.domain.member.Member;
5+
import eatda.exception.BusinessErrorCode;
6+
import eatda.exception.BusinessException;
7+
import jakarta.persistence.Column;
8+
import jakarta.persistence.Entity;
9+
import jakarta.persistence.FetchType;
10+
import jakarta.persistence.GeneratedValue;
11+
import jakarta.persistence.GenerationType;
12+
import jakarta.persistence.Id;
13+
import jakarta.persistence.JoinColumn;
14+
import jakarta.persistence.ManyToOne;
15+
import jakarta.persistence.Table;
16+
import java.time.LocalDateTime;
17+
import lombok.AccessLevel;
18+
import lombok.Getter;
19+
import lombok.NoArgsConstructor;
20+
21+
@Table(name = "cheer")
22+
@Entity
23+
@Getter
24+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
25+
public class Cheer extends AuditingEntity {
26+
27+
@Id
28+
@GeneratedValue(strategy = GenerationType.IDENTITY)
29+
private Long id;
30+
31+
@ManyToOne(fetch = FetchType.LAZY)
32+
@JoinColumn(name = "member_id", nullable = false)
33+
private Member member;
34+
35+
@ManyToOne(fetch = FetchType.LAZY)
36+
@JoinColumn(name = "store_id", nullable = false)
37+
private Store store;
38+
39+
@Column(nullable = false, columnDefinition = "TEXT")
40+
private String description;
41+
42+
@Column(name = "image_key", length = 511)
43+
private String imageKey;
44+
45+
@Column(name = "is_admin", nullable = false)
46+
private boolean isAdmin;
47+
48+
public Cheer(Member member, Store store, String description, String imageKey) {
49+
validateDescription(description);
50+
validateImageKey(imageKey);
51+
this.member = member;
52+
this.store = store;
53+
this.description = description;
54+
this.imageKey = imageKey;
55+
56+
this.isAdmin = false;
57+
}
58+
59+
private void validateDescription(String description) {
60+
if (description == null || description.isBlank()) {
61+
throw new BusinessException(BusinessErrorCode.INVALID_CHEER_DESCRIPTION);
62+
}
63+
}
64+
65+
private void validateImageKey(String imageKey) {
66+
if (imageKey != null && imageKey.isBlank()) {
67+
throw new BusinessException(BusinessErrorCode.INVALID_CHEER_IMAGE_KEY);
68+
}
69+
}
70+
}

0 commit comments

Comments
 (0)