Skip to content

Commit

Permalink
Merge pull request #15 from KUSITMS-CORECORD/add/#9
Browse files Browse the repository at this point in the history
[Add/#9] Entity간 연관관계 설정
  • Loading branch information
daeun084 authored Oct 19, 2024
2 parents f4bca36 + 9d940fb commit 784af7e
Show file tree
Hide file tree
Showing 9 changed files with 249 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/main/java/corecord/dev/domain/analysis/constant/Keyword.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package corecord.dev.domain.analysis.constant;

import lombok.AllArgsConstructor;

@AllArgsConstructor
public enum Keyword {
COMMUNICATION("커뮤니케이션"),
TEAMWORK("팀워크"),
LEADERSHIP("리더십")
;

private final String value;

public String getValue() {
return value;
}

}
39 changes: 39 additions & 0 deletions src/main/java/corecord/dev/domain/analysis/entity/Ability.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package corecord.dev.domain.analysis.entity;

import corecord.dev.common.base.BaseEntity;
import corecord.dev.domain.analysis.constant.Keyword;
import corecord.dev.domain.user.entity.User;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Ability extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false)
private Long abilityId;

@Column(nullable = false)
@Enumerated(EnumType.STRING)
private Keyword keyword;

@Column(nullable = false, length = 500)
private String content;

@ManyToOne
@JoinColumn(name = "user_id", nullable = false)
private User user;

@ManyToOne
@JoinColumn(name = "analysis_id", nullable = false)
private Analysis analysis;

}
37 changes: 37 additions & 0 deletions src/main/java/corecord/dev/domain/analysis/entity/Analysis.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package corecord.dev.domain.analysis.entity;

import corecord.dev.common.base.BaseEntity;
import corecord.dev.domain.record.entity.Record;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Analysis extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false)
private Long analysisId;

@Column(nullable = false)
private int count; // min=1, max=3

@Column(nullable = false, length = 500)
private String suggestion;

@OneToOne
@JoinColumn(name = "record_id", nullable = false)
private Record record;

@OneToMany(mappedBy = "analysis", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Ability> abilityList;
}
31 changes: 31 additions & 0 deletions src/main/java/corecord/dev/domain/chat/entity/Chat.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package corecord.dev.domain.chat.entity;

import corecord.dev.common.base.BaseEntity;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Chat extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false)
private Long chatId;

@Column(nullable = false)
private Integer author; // 0(user), 1(ai)

@Column(nullable = false, length = 500)
private String content;

@ManyToOne
@JoinColumn(name = "chat_room_id", nullable = false)
private ChatRoom chatRoom;
}
35 changes: 35 additions & 0 deletions src/main/java/corecord/dev/domain/chat/entity/ChatRoom.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package corecord.dev.domain.chat.entity;

import corecord.dev.common.base.BaseEntity;
import corecord.dev.domain.record.entity.Record;
import corecord.dev.domain.user.entity.User;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ChatRoom extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false)
private Long chatRoomId;

@OneToMany(mappedBy = "chatRoom", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<Chat> chatList;

@OneToOne(mappedBy = "chatRoom")
private Record record;

@ManyToOne
@JoinColumn(name = "user_id", nullable = false)
private User user;
}
28 changes: 28 additions & 0 deletions src/main/java/corecord/dev/domain/folder/entity/Folder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package corecord.dev.domain.folder.entity;

import corecord.dev.common.base.BaseEntity;
import corecord.dev.domain.record.entity.Record;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Folder extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false)
private Long folderId;

@Column(nullable = false, length = 15)
private String title;

@OneToOne(mappedBy = "folder")
private Record record;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package corecord.dev.domain.record.constant;

public enum RecordType {
MEMO, CHAT
}
49 changes: 49 additions & 0 deletions src/main/java/corecord/dev/domain/record/entity/Record.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package corecord.dev.domain.record.entity;

import corecord.dev.common.base.BaseEntity;
import corecord.dev.domain.analysis.entity.Analysis;
import corecord.dev.domain.chat.entity.ChatRoom;
import corecord.dev.domain.folder.entity.Folder;
import corecord.dev.domain.record.constant.RecordType;
import corecord.dev.domain.user.entity.User;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter @Builder
@AllArgsConstructor
@NoArgsConstructor
public class Record extends BaseEntity {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false)
private Long recordId;

@Column(nullable = false)
@Enumerated(EnumType.STRING)
private RecordType type;

@Column(length = 15)
private String title;

@Column(nullable = false, length = 500)
private String content;

@ManyToOne
@JoinColumn(name = "user_id", nullable = false)
private User user;

@OneToOne
@JoinColumn(name = "chat_room_id", nullable = true)
private ChatRoom chatRoom;

@OneToOne
@JoinColumn(name = "folder_id", nullable = true)
private Folder folder;

@OneToOne(mappedBy = "record")
private Analysis analysis;
}
7 changes: 7 additions & 0 deletions src/main/java/corecord/dev/domain/user/entity/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,11 @@ public class User extends BaseEntity {
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private Status status;

@Column
private Long tmpChat;

@Column
private Long tmpMemo;

}

0 comments on commit 784af7e

Please sign in to comment.