Skip to content

Commit 77990f6

Browse files
committed
feat: 일정 엔티티 생성
1 parent f2b1c6d commit 77990f6

File tree

7 files changed

+203
-0
lines changed

7 files changed

+203
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.catcher.core.domain.entity;
2+
3+
import com.catcher.core.domain.entity.enums.ScheduleStatus;
4+
import jakarta.persistence.*;
5+
import lombok.AccessLevel;
6+
import lombok.Getter;
7+
import lombok.NoArgsConstructor;
8+
9+
import java.time.ZonedDateTime;
10+
11+
@Entity
12+
@Getter
13+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
14+
@Table(name = "schedule")
15+
public class Schedule extends BaseTimeEntity {
16+
@Id
17+
@GeneratedValue(strategy = GenerationType.IDENTITY)
18+
private Long id;
19+
20+
@ManyToOne(fetch = FetchType.LAZY)
21+
@JoinColumn(name = "user_id", nullable = false)
22+
private User user;
23+
24+
@ManyToOne(fetch = FetchType.LAZY)
25+
@JoinColumn(name = "location_id")
26+
private Location location;
27+
28+
private Long participantLimit;
29+
30+
private String locationDetail;
31+
32+
@Column(nullable = false)
33+
private String title;
34+
35+
private String description;
36+
37+
@ManyToOne(fetch = FetchType.LAZY)
38+
@JoinColumn(name = "upload_file_id", nullable = false)
39+
private UploadFile uploadFile;
40+
41+
@Column(nullable = false)
42+
private Long viewCount;
43+
44+
private Long budget;
45+
46+
@Enumerated(value = EnumType.STRING)
47+
private ScheduleStatus status;
48+
49+
@Column(name = "start_at", nullable = false)
50+
private ZonedDateTime startAt; // 일정 시작
51+
52+
@Column(name = "end_at", nullable = false)
53+
private ZonedDateTime endAt; // 일정 종료
54+
55+
@Column(name = "participate_start_at", nullable = false)
56+
private ZonedDateTime participateStartAt; // 모집 시작
57+
58+
@Column(name = "participate_end_at", nullable = false)
59+
private ZonedDateTime participateEndAt; // 모집 종료
60+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.catcher.core.domain.entity;
2+
3+
import com.catcher.core.domain.entity.enums.ContentType;
4+
import jakarta.persistence.*;
5+
import lombok.AccessLevel;
6+
import lombok.Getter;
7+
import lombok.NoArgsConstructor;
8+
9+
import java.time.ZonedDateTime;
10+
11+
@Entity
12+
@Getter
13+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
14+
@Table(name = "upload_file")
15+
public class UploadFile {
16+
@Id
17+
@GeneratedValue(strategy = GenerationType.IDENTITY)
18+
private Long id;
19+
20+
@Column(nullable = false)
21+
private Long contentId;
22+
23+
@Enumerated(value = EnumType.STRING)
24+
private ContentType contentType;
25+
26+
@Column(nullable = false)
27+
private String fileUrl;
28+
29+
@Column(name = "deleted_at")
30+
private ZonedDateTime deletedAt;
31+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package com.catcher.core.domain.entity;
2+
3+
import com.catcher.core.domain.entity.enums.UserProvider;
4+
import com.catcher.core.domain.entity.enums.UserRole;
5+
import jakarta.persistence.*;
6+
import lombok.AccessLevel;
7+
import lombok.Builder;
8+
import lombok.Getter;
9+
import lombok.NoArgsConstructor;
10+
11+
import java.time.ZonedDateTime;
12+
13+
@Entity
14+
@Getter
15+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
16+
@Table(name = "users")
17+
public class User extends BaseTimeEntity {
18+
@Id
19+
@GeneratedValue(strategy = GenerationType.IDENTITY)
20+
private Long id;
21+
22+
@Column(unique = true, nullable = false)
23+
private String username;
24+
25+
// TODO: encrypted maybe?
26+
@Column(nullable = false)
27+
private String password;
28+
29+
@Column(unique = true, nullable = false)
30+
private String phone;
31+
32+
@Column(unique = true, nullable = false)
33+
private String email;
34+
35+
// TODO : 첨부파일 외래키 참조해야 지
36+
private String profileImageUrl;
37+
38+
private String introduceContent;
39+
40+
@Column(unique = true, nullable = false)
41+
private String nickname;
42+
43+
@Enumerated(value = EnumType.STRING)
44+
private UserProvider userProvider;
45+
46+
@Enumerated(value = EnumType.STRING)
47+
private UserRole userRole;
48+
49+
@Column(nullable = false)
50+
private ZonedDateTime userAgeTerm; // 필수 약관
51+
52+
@Column(nullable = false)
53+
private ZonedDateTime userServiceTerm; // 필수 약관
54+
55+
@Column(nullable = false)
56+
private ZonedDateTime userPrivacyTerm; // 필수 약관
57+
58+
@Column(nullable = false)
59+
private ZonedDateTime userLocationTerm; // 필수 약관
60+
61+
private ZonedDateTime userMarketingTerm; // 선택 약관
62+
63+
private ZonedDateTime deletedAt;
64+
65+
@Builder
66+
public User(String username, String password, String email, String profileImageUrl, String phone, String nickname, UserProvider userProvider, UserRole role, ZonedDateTime userAgeTerm, ZonedDateTime userServiceTerm, ZonedDateTime userPrivacyTerm, ZonedDateTime userLocationTerm, String introduceContent, ZonedDateTime userMarketingTerm){
67+
this.username = username;
68+
this.password = password;
69+
this.email = email;
70+
this.profileImageUrl = profileImageUrl;
71+
this.userProvider = userProvider;
72+
this.phone = phone;
73+
this.nickname = nickname;
74+
this.userRole = role;
75+
this.userAgeTerm = userAgeTerm;
76+
this.userServiceTerm = userServiceTerm;
77+
this.userPrivacyTerm = userPrivacyTerm;
78+
this.userLocationTerm = userLocationTerm;
79+
this.introduceContent = introduceContent;
80+
this.userMarketingTerm = userMarketingTerm;
81+
}
82+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.catcher.core.domain.entity.enums;
2+
3+
public enum ContentType {
4+
COMMENT, REPLY, SCHEDULEDETAIL, SCHEDULE
5+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.catcher.core.domain.entity.enums;
2+
3+
public enum ScheduleStatus {
4+
REPORT, DELETE, PUBLIC, PRIVATE, PARTIAL, TEMPORARY
5+
}
6+
//신고, 삭제, 공개, 비공개, 일부 공개, 임시 저장
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.catcher.core.domain.entity.enums;
2+
3+
public enum UserProvider {
4+
CATCHER, NAVER, KAKAO,
5+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.catcher.core.domain.entity.enums;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public enum UserRole {
7+
USER("ROLE_USER"), ADMIN("ROLE_ADMIN");
8+
9+
private final String value;
10+
11+
UserRole(String value) {
12+
this.value = value;
13+
}
14+
}

0 commit comments

Comments
 (0)