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
2 changes: 2 additions & 0 deletions src/main/java/hyu/erica/capstone/CapstoneApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@SpringBootApplication
@EnableJpaAuditing
public class CapstoneApplication {

public static void main(String[] args) {
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/hyu/erica/capstone/domain/Attraction.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package hyu.erica.capstone.domain;

public class Attraction {
// 추후 작성 예정
}
5 changes: 5 additions & 0 deletions src/main/java/hyu/erica/capstone/domain/Restaurant.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package hyu.erica.capstone.domain;

public class Restaurant {
// 추후 작성 예정
}
46 changes: 46 additions & 0 deletions src/main/java/hyu/erica/capstone/domain/TravelPlan.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package hyu.erica.capstone.domain;


import static jakarta.persistence.GenerationType.IDENTITY;

import hyu.erica.capstone.domain.enums.City;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import java.time.LocalDateTime;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

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

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

private City city;

private LocalDateTime startDate;

private LocalDateTime endDate;

private String preferActivity;

private String requirement;

@ManyToOne
@JoinColumn(name = "user_id")
private User user;
}
49 changes: 49 additions & 0 deletions src/main/java/hyu/erica/capstone/domain/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package hyu.erica.capstone.domain;


import hyu.erica.capstone.domain.base.BaseEntity;
import hyu.erica.capstone.domain.enums.Gender;
import hyu.erica.capstone.domain.enums.ThirdPartyLogin;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import java.time.LocalDate;
import java.util.List;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

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

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

private String name;

private String nickname;

private String email;

private String password;

private LocalDate birthday;

private Gender gender;

private String profileImage;

private ThirdPartyLogin thirdPartyLogin;

}
21 changes: 21 additions & 0 deletions src/main/java/hyu/erica/capstone/domain/base/BaseEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package hyu.erica.capstone.domain.base;

import jakarta.persistence.EntityListeners;
import jakarta.persistence.MappedSuperclass;
import java.time.LocalDateTime;
import lombok.Getter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
@Getter
public abstract class BaseEntity {

@CreatedDate
private LocalDateTime createdAt;

@LastModifiedDate
private LocalDateTime updatedAt;
}
5 changes: 5 additions & 0 deletions src/main/java/hyu/erica/capstone/domain/enums/City.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package hyu.erica.capstone.domain.enums;

public enum City {
BUSAN, DAEGU, INCHEON, JEJU, SEOUL
}
5 changes: 5 additions & 0 deletions src/main/java/hyu/erica/capstone/domain/enums/Gender.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package hyu.erica.capstone.domain.enums;

public enum Gender {
MALE, FEMALE
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package hyu.erica.capstone.domain.enums;

public enum ThirdPartyLogin {
GOOGLE, NAVER, KAKAO
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package hyu.erica.capstone.domain.mapping;

import static jakarta.persistence.GenerationType.*;

import hyu.erica.capstone.domain.Attraction;
import hyu.erica.capstone.domain.User;
import hyu.erica.capstone.domain.base.BaseEntity;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

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

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

//private Attraction attraction;

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
private User user;

private boolean isPrefer;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package hyu.erica.capstone.domain.mapping;

import static jakarta.persistence.GenerationType.IDENTITY;

import hyu.erica.capstone.domain.Restaurant;
import hyu.erica.capstone.domain.User;
import hyu.erica.capstone.domain.base.BaseEntity;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

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

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

// private Restaurant restaurant;

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
private User user;

private boolean isPrefer;
}