Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions src/main/java/DiffLens/back_end/domain/library/entity/Library.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package DiffLens.back_end.domain.library.entity;

import DiffLens.back_end.domain.search.entity.SearchHistory;
import jakarta.persistence.*;
import lombok.*;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Library {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false, length = 50)
private String libraryName;

@Column(nullable = false, length = 10)
private String tag;

// 연관관계
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "history_id")
private SearchHistory history;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package DiffLens.back_end.domain.library.entity;

import DiffLens.back_end.domain.panel.entity.Panel;
import jakarta.persistence.*;
import lombok.*;

/**
* Library - Panel 의 중간테이블
*/
@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class LibraryPanel {

// 복합키
@EmbeddedId
private LibraryPanelKey id;

// 연관관계

@MapsId("libraryId") // 복합키 클래스 필드와 동기화
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "library_id", insertable = false, updatable = false) // insertable, updatable false => 중복방지
private Library library;

@MapsId("panelId")
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "panel_id", insertable = false, updatable = false)
private Panel panel;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package DiffLens.back_end.domain.library.entity;

import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import lombok.*;

import java.io.Serializable;

/**
* LibraryPanel에 대한 복합키 클래스
*/
@Getter
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Embeddable
public class LibraryPanelKey implements Serializable {

@Column(name = "panel_id")
private String panelId;

@Column(name = "library_id")
private Long libraryId;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package DiffLens.back_end.domain.members.entity;

import DiffLens.back_end.global.entity.BaseEntity;
import jakarta.persistence.*;
import lombok.*;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Agreement extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

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

// 연관관계

// 양방향
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id", nullable = false)
private Member member;

}
19 changes: 17 additions & 2 deletions src/main/java/DiffLens/back_end/domain/members/entity/Member.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
@Entity
@Getter
@Builder
@AllArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Member extends BaseEntity implements UserDetails {

Expand All @@ -29,16 +29,31 @@ public class Member extends BaseEntity implements UserDetails {
@Column(length = 50, nullable = false)
private String email;

@Column(nullable = true)
@Column(nullable = true, length = 255)
private String password;

@Enumerated(EnumType.STRING)
@Column(nullable = false)
private LoginType loginType;

@Column(nullable = true)
private String profileImage;

// 연관관계

// 양방향
@OneToOne(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true)
private Agreement agreement;

// 양방향
@OneToOne(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true)
private Onboarding onboarding;

// 단방향
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "plan_id")
private Plan plan;

// Security 관련
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package DiffLens.back_end.domain.members.entity;

import DiffLens.back_end.domain.members.enums.Industry;
import DiffLens.back_end.domain.members.enums.Job;
import DiffLens.back_end.global.entity.BaseEntity;
import jakarta.persistence.*;
import lombok.*;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Onboarding extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Enumerated(EnumType.STRING)
@Column(nullable = false)
private Job job;

@Enumerated(EnumType.STRING)
@Column(nullable = false)
private Industry industry;

// 연관관계

// 양방향
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id", nullable = false)
private Member member;

}
26 changes: 26 additions & 0 deletions src/main/java/DiffLens/back_end/domain/members/entity/Plan.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package DiffLens.back_end.domain.members.entity;

import DiffLens.back_end.global.entity.BaseEntity;
import jakarta.persistence.*;
import jakarta.validation.constraints.Min;
import lombok.*;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Plan extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false, length = 50)
private String name;

@Min(0)
@Column(nullable = false)
private Integer price;

}
10 changes: 10 additions & 0 deletions src/main/java/DiffLens/back_end/domain/members/enums/Industry.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package DiffLens.back_end.domain.members.enums;

/**
* 업종
*/
public enum Industry {

IT, FINANCE, EDUCATION

}
10 changes: 10 additions & 0 deletions src/main/java/DiffLens/back_end/domain/members/enums/Job.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package DiffLens.back_end.domain.members.enums;

/**
* 직무
*/
public enum Job {

ETC

}
66 changes: 66 additions & 0 deletions src/main/java/DiffLens/back_end/domain/panel/entity/Panel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package DiffLens.back_end.domain.panel.entity;

import DiffLens.back_end.domain.search.enums.filters.Gender;
import jakarta.persistence.*;
import jakarta.validation.constraints.Min;
import lombok.*;
import org.hibernate.annotations.JdbcTypeCode;
import org.hibernate.type.SqlTypes;

import java.util.List;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Panel {

@Id
@Column(length = 50)
private String id;

@JdbcTypeCode(SqlTypes.JSON)
@Column(nullable = false)
private Object rawData;

@Enumerated(EnumType.STRING)
@Column(nullable = false)
private Gender gender;

@Column(nullable = false, length = 20)
private String ageGroup;

@Column(nullable = false, length = 100)
private String residence;

@Column(nullable = false, length = 10)
private String martialStatus;

@Column(nullable = false)
@Min(0)
private Integer childrenCount;

@Column(nullable = false, length = 50)
private String education;

@Column(nullable = false, length = 200)
private String occupation;

@JdbcTypeCode(SqlTypes.ARRAY)
@Column(nullable = false, columnDefinition = "text[] DEFAULT '{}'::text[]")
private List<String> devices;

@Column(nullable = false, columnDefinition = "TEXT")
private String profileSummary;

@JdbcTypeCode(SqlTypes.VECTOR)
@Column(columnDefinition = "vector(4096)")
private float[] embedding; // float[] 써야한다고 함...

@JdbcTypeCode(SqlTypes.ARRAY)
@Column(nullable = false, columnDefinition = "text[] DEFAULT '{}'::text[]")
private List<String> hashTags;


}
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ public static class SearchFilters{
private List<String> martialStatus; // 결혼상태
private String children;
private List<String> occupation;// 직업

// TODO : 추후 필터 추가 예정...

}


Expand Down
22 changes: 22 additions & 0 deletions src/main/java/DiffLens/back_end/domain/search/entity/Filter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package DiffLens.back_end.domain.search.entity;

import jakarta.persistence.*;
import lombok.*;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Filter {

@Id
private Long id; // 자동생성 X

@Column(nullable = false, length = 50)
private String type;

@Column(nullable = false, length = 100)
private String value;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package DiffLens.back_end.domain.search.entity;

import DiffLens.back_end.global.entity.BaseEntity;
import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.JdbcTypeCode;
import org.hibernate.type.SqlTypes;

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

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class SearchFilter extends BaseEntity {

@Id // history의 id로 지정. 자동 X
private Long id;

@JdbcTypeCode(SqlTypes.ARRAY)
@Column(nullable = false, columnDefinition = "bigint[] DEFAULT '{}'::bigint[]")
private List<Long> filters = new ArrayList<>();

@OneToOne(fetch = FetchType.LAZY)
@MapsId
@JoinColumn(name = "search_id")
private SearchHistory searchHistory;

}
Loading
Loading