Skip to content

Commit 6111b00

Browse files
committed
CLAP-28 ✨ Feat: notification 도메인에 대한 entity 추가
<footer> - 관련: #2
1 parent 96ffb9c commit 6111b00

File tree

5 files changed

+110
-0
lines changed

5 files changed

+110
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package clap.server.adapter.out.persistense.entity.notification;
2+
3+
import clap.server.adapter.out.persistense.entity.common.BaseTimeEntity;
4+
import clap.server.adapter.out.persistense.entity.member.MemberEntity;
5+
import jakarta.persistence.*;
6+
import lombok.AccessLevel;
7+
import lombok.Getter;
8+
import lombok.NoArgsConstructor;
9+
import lombok.experimental.SuperBuilder;
10+
11+
@Entity
12+
@Table(name = "notification_channel")
13+
@Getter
14+
@SuperBuilder
15+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
16+
public class NotificationChannelEntity extends BaseTimeEntity {
17+
@Id
18+
@GeneratedValue(strategy = GenerationType.IDENTITY)
19+
@Column(nullable = false)
20+
private Long notificationChannelId;
21+
22+
@ManyToOne(fetch = FetchType.LAZY)
23+
@JoinColumn(name = "admin_id", nullable = false)
24+
private MemberEntity admin;
25+
26+
@Column(nullable = false)
27+
private String code;
28+
29+
@Column(nullable = false)
30+
private String name;
31+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package clap.server.adapter.out.persistense.entity.notification;
2+
3+
import clap.server.adapter.out.persistense.entity.common.BaseTimeEntity;
4+
import clap.server.adapter.out.persistense.entity.member.MemberEntity;
5+
import clap.server.adapter.out.persistense.entity.notification.constant.NotificationPublisherType;
6+
import clap.server.adapter.out.persistense.entity.task.TaskEntity;
7+
import jakarta.persistence.*;
8+
import lombok.AccessLevel;
9+
import lombok.Getter;
10+
import lombok.NoArgsConstructor;
11+
import lombok.experimental.SuperBuilder;
12+
13+
14+
@Entity
15+
@Table(name = "notification")
16+
@Getter
17+
@SuperBuilder
18+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
19+
public class NotificationEntity extends BaseTimeEntity {
20+
@Id
21+
@GeneratedValue(strategy = GenerationType.IDENTITY)
22+
@Column(name = "notification_id")
23+
private Long notificationId;
24+
25+
@ManyToOne(fetch = FetchType.LAZY)
26+
@JoinColumn(name = "task_id")
27+
private TaskEntity task;
28+
29+
@Column(nullable = false)
30+
private String type;
31+
32+
@ManyToOne(fetch = FetchType.LAZY)
33+
@JoinColumn(name = "receiver_id", nullable = false)
34+
private MemberEntity receiver;
35+
36+
@Column(nullable = false)
37+
private String message;
38+
39+
@Column(name = "publisher_type", nullable = false)
40+
@Enumerated(EnumType.STRING)
41+
private NotificationPublisherType publisherType;
42+
43+
@Column(nullable = false)
44+
private boolean isRead;
45+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package clap.server.adapter.out.persistense.entity.notification.constant;
2+
3+
import lombok.Getter;
4+
import lombok.RequiredArgsConstructor;
5+
6+
@Getter
7+
@RequiredArgsConstructor
8+
public enum NotificationChannelEnum {
9+
KAKAO_WORK,
10+
EMAIL,
11+
AGIT
12+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package clap.server.adapter.out.persistense.entity.notification.constant;
2+
3+
import lombok.Getter;
4+
import lombok.RequiredArgsConstructor;
5+
6+
@Getter
7+
@RequiredArgsConstructor
8+
public enum NotificationPublisherType {
9+
SYSTEM,
10+
MEMBER
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package clap.server.adapter.out.persistense.entity.notification.constant;
2+
3+
import lombok.Getter;
4+
import lombok.RequiredArgsConstructor;
5+
6+
@Getter
7+
@RequiredArgsConstructor
8+
public enum NotificationType {
9+
SYSTEM,
10+
MEMBER
11+
}

0 commit comments

Comments
 (0)