Skip to content

Commit

Permalink
feat: Add Entity
Browse files Browse the repository at this point in the history
  • Loading branch information
jiyeoon00 committed Jul 5, 2023
1 parent 87e3ab3 commit 71c445c
Show file tree
Hide file tree
Showing 17 changed files with 525 additions and 4 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ dependencies {

implementation 'org.springframework.boot:spring-boot-starter-security'

//implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

// sentry dependency
implementation 'io.sentry:sentry-spring-boot-starter:6.23.0'
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/com/universe/uni/domain/MatchResult.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.universe.uni.domain;

public enum MatchResult {
WIN, LOSE, DRAW
}
5 changes: 5 additions & 0 deletions src/main/java/com/universe/uni/domain/MatchType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.universe.uni.domain;

public enum MatchType {
SHORT, LONG
}
7 changes: 7 additions & 0 deletions src/main/java/com/universe/uni/domain/SnsType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.universe.uni.domain;

public enum SnsType {
KAKAO,
GOOGLE,
APPLE;
}
40 changes: 40 additions & 0 deletions src/main/java/com/universe/uni/domain/entity/Couple.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.universe.uni.domain.entity;

import java.time.LocalDate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.ColumnDefault;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Entity
@Table(name = "couple")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PROTECTED)
public class Couple {

@Id
@Column(name = "couple_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(name = "start_date", nullable = false)
private LocalDate startDate;

@Column(name = "invite_code", nullable = false)
private String inviteCode;

@Column(name = "heart_token", nullable = false)
@ColumnDefault("5")
private int heartToken;
}
29 changes: 29 additions & 0 deletions src/main/java/com/universe/uni/domain/entity/LongMatch.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.universe.uni.domain.entity;

import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.PrimaryKeyJoinColumn;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Entity
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PROTECTED)
@DiscriminatorValue("LongMatch")
@PrimaryKeyJoinColumn(name = "match_id")
public class LongMatch extends Match {

@Column(name = "duration", nullable = false)
private int duration;

@Column(name = "round", nullable = false)
private int round;

@Column(name = "rest_of_game", nullable = false)
private int restOfGame;
}
42 changes: 42 additions & 0 deletions src/main/java/com/universe/uni/domain/entity/Match.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.universe.uni.domain.entity;

import java.time.LocalDateTime;

import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Table(name = "match")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PROTECTED)
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn
public class Match {

@Id
@Column(name = "match_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(name = "couple_id")
private Long coupleId;

@Column(name = "enable", nullable = false)
private Boolean enable;

@Column(name = "finish_at")
private LocalDateTime finishAt;
}
47 changes: 47 additions & 0 deletions src/main/java/com/universe/uni/domain/entity/MissionCategory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.universe.uni.domain.entity;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

@Entity
@Table(name = "mission_category")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PROTECTED)
public class MissionCategory {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "mission_category_id", nullable = false)
private Long id;

@Column(name = "title", nullable = false)
private String title;

@Column(name = "description", nullable = false)
private String description;

@Column(name = "tip", nullable = false)
private String tip;

@Column(name = "image", nullable = false)
private String image;

@Column(name = "lever", nullable = false)
private int level;

@OneToMany(mappedBy = "mission_category_id")
private List<MissionContent> missionContentList = new ArrayList<>();

}
35 changes: 35 additions & 0 deletions src/main/java/com/universe/uni/domain/entity/MissionContent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.universe.uni.domain.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Table(name = "mission_content")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PROTECTED)
public class MissionContent {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "mission_content_id", nullable = false)
private Long id;

@Column(name = "mission_category_id")
private Long missionCategoryId;

@Column(name = "content", nullable = false)
private String content;

@Column(name = "image", nullable = false)
private String image;
}
51 changes: 51 additions & 0 deletions src/main/java/com/universe/uni/domain/entity/RoundHistory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.universe.uni.domain.entity;

import static javax.persistence.GenerationType.*;
import static lombok.AccessLevel.*;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import com.universe.uni.domain.MatchResult;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Entity
@Table(name = "round_history")
@NoArgsConstructor(access = PROTECTED)
@AllArgsConstructor(access = PROTECTED)
public class RoundHistory {

@Id
@Column(name = "round_history_id")
@GeneratedValue(strategy = IDENTITY)
private Long id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "round_match_id", nullable = false)
private RoundMatch roundMatch;

@Column(name = "user_id", nullable = false)
private Long userId;

@Column(name = "result")
private MatchResult result;

@OneToMany(mappedBy = "mission_content_id")
private List<RoundMission> roundMissionList;

@Column(name = "user_match_history_id", nullable = false)
private Long userMatchHistoryId;
}
39 changes: 39 additions & 0 deletions src/main/java/com/universe/uni/domain/entity/RoundMatch.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.universe.uni.domain.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Entity
@Table(name = "round_match")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PROTECTED)
public class RoundMatch {

@Id
@Column(name = "round_match_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(name = "match_id", nullable = false)
private Long matchId;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "mission_category_id", nullable = false)
private MissionCategory missionCategory;

@Column(name = "enable", nullable = false)
private Boolean enable;
}
49 changes: 49 additions & 0 deletions src/main/java/com/universe/uni/domain/entity/RoundMission.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.universe.uni.domain.entity;

import java.time.LocalDateTime;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.universe.uni.domain.MatchResult;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Entity
@Table(name = "round_mission")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PROTECTED)
public class RoundMission {

@Id
@Column(name = "round_mission_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(name = "round_match_id", nullable = false)
private Long roundMatchId;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "mission_content_id", nullable = false)
private MissionContent missionContent;

@Column(name = "user_id", nullable = false)
private Long userId;

@Column(name = "updated_at")
private LocalDateTime updatedAt;

@Column(name = "result")
private MatchResult result;
}
20 changes: 20 additions & 0 deletions src/main/java/com/universe/uni/domain/entity/ShortMatch.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.universe.uni.domain.entity;

import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.PrimaryKeyJoinColumn;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Entity
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PROTECTED)
@DiscriminatorValue("ShortMatch")
@PrimaryKeyJoinColumn(name = "match_id")
public class ShortMatch extends Match {

}
Loading

0 comments on commit 71c445c

Please sign in to comment.