Skip to content

Commit

Permalink
Merge pull request #7 from GDSC-C-E/feature/entity
Browse files Browse the repository at this point in the history
[Feature] Entity 추가
  • Loading branch information
joowojr authored Jan 22, 2024
2 parents 50879af + 775b95c commit bb88df3
Show file tree
Hide file tree
Showing 6 changed files with 160 additions and 0 deletions.
26 changes: 26 additions & 0 deletions src/main/java/gdsc/sc/bsafe/domain/AIRecord.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package gdsc.sc.bsafe.domain;

import jakarta.persistence.Column;
import jakarta.persistence.DiscriminatorValue;
import jakarta.persistence.Entity;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@DiscriminatorValue("AI")
public class AIRecord extends Record {

@Column(nullable = false)
private Integer grade;

@Builder
public AIRecord(User user, String image, String title, String detail, Integer grade){
super(user, image, title, detail);
this.grade = grade;
}

}
21 changes: 21 additions & 0 deletions src/main/java/gdsc/sc/bsafe/domain/BasicRecord.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package gdsc.sc.bsafe.domain;

import jakarta.persistence.DiscriminatorValue;
import jakarta.persistence.Entity;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@DiscriminatorValue("BASIC")
public class BasicRecord extends Record {

@Builder
public BasicRecord(User user, String image, String title, String detail){
super(user, image, title, detail);
}

}
46 changes: 46 additions & 0 deletions src/main/java/gdsc/sc/bsafe/domain/Record.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package gdsc.sc.bsafe.domain;

import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@DiscriminatorColumn
@Table(name = "record")
public class Record {

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

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

@Column(nullable = false)
private String image;

@Column(nullable = false)
private String title;

@Column(nullable = false)
private String detail;

/*
ENUM 타입으로 변경하기
private String category;
*/

public Record(User user, String image, String title, String detail){
this.user = user;
this.image = image;
this.title = title;
this.detail = detail;
}


}
10 changes: 10 additions & 0 deletions src/main/java/gdsc/sc/bsafe/domain/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@

import gdsc.sc.bsafe.domain.common.BaseTimeEntity;
import gdsc.sc.bsafe.domain.enums.Authority;
import gdsc.sc.bsafe.domain.mapping.HelpRecord;
import gdsc.sc.bsafe.global.auth.Password;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;

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

import static gdsc.sc.bsafe.domain.enums.Authority.ROLE_USER;

@Entity
Expand All @@ -30,12 +34,18 @@ public class User extends BaseTimeEntity {
@Column(nullable = false, unique = true)
private String email;

@Column(nullable = false, unique = true)
private String tel;

@Column(nullable = false)
private String name;

@Enumerated(EnumType.STRING)
private Authority authority = ROLE_USER;

@OneToMany(mappedBy = "helper")
private List<HelpRecord> helpedRecords = new ArrayList<>();

public User(String id, Password password, String email, String name) {
this.id = id;
this.password = password;
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/gdsc/sc/bsafe/domain/enums/RequestStatus.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package gdsc.sc.bsafe.domain.enums;

public enum RequestStatus {
REQUESTED("요청"),
PROCEEDING("진행"),
COMPLETED("완료");

private String description;
RequestStatus(String description){this.description=description;}
}
47 changes: 47 additions & 0 deletions src/main/java/gdsc/sc/bsafe/domain/mapping/HelpRecord.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package gdsc.sc.bsafe.domain.mapping;

import gdsc.sc.bsafe.domain.Record;
import gdsc.sc.bsafe.domain.User;
import gdsc.sc.bsafe.domain.common.BaseTimeEntity;
import gdsc.sc.bsafe.domain.enums.RequestStatus;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.Date;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name = "help_record")
public class HelpRecord extends BaseTimeEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "report_id")
private Long reportId;

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

@ManyToOne
@JoinColumn(name = "helper_id", nullable = false)
private User helper;

@Column(nullable = false)
private RequestStatus status;

@Column(nullable = false)
private Date date;

@Column(nullable = false)
private String placeId;

@Column(nullable = false)
private String district;

@Column(nullable = false)
private String address;

}

0 comments on commit bb88df3

Please sign in to comment.