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
20 changes: 20 additions & 0 deletions src/main/java/kw/zeropick/common/controller/HealthCheck.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package kw.zeropick.common.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;


@Controller
public class HealthCheck {

@Value("${commit.hash}")
public String commitHash;

@ResponseBody
@GetMapping("/health-check")
public String healthCheck() {
return commitHash;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package kw.zeropick.common.converter;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.persistence.AttributeConverter;

import java.io.IOException;
import java.util.List;

public class StringListToStringConverter implements AttributeConverter<List<String>, String> {
private static final ObjectMapper mapper = new ObjectMapper()
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.configure(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES, false);

@Override
public String convertToDatabaseColumn(List<String> attribute) {
try {
return mapper.writeValueAsString(attribute);
} catch (JsonProcessingException e) {
throw new IllegalArgumentException();
}
}

@Override
public List<String> convertToEntityAttribute(String dbData) {
TypeReference<List<String>> typeReference = new TypeReference<List<String>>() {};
try {
return mapper.readValue(dbData, typeReference);
} catch (IOException e) {
throw new IllegalArgumentException();
}
}
}

25 changes: 25 additions & 0 deletions src/main/java/kw/zeropick/common/domain/BaseEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package kw.zeropick.common.domain;

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

import java.time.LocalDateTime;

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {
@CreatedDate
@Column(length = 6)
private LocalDateTime createdAt;

@LastModifiedDate
@Column(length = 6)
private LocalDateTime updatedAt;
}

22 changes: 22 additions & 0 deletions src/main/java/kw/zeropick/compare/domain/Compare.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package kw.zeropick.compare.domain;

import jakarta.persistence.*;
import kw.zeropick.common.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Compare extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "compare_id")
private Long id;


}
21 changes: 21 additions & 0 deletions src/main/java/kw/zeropick/member/domain/Bookmark.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package kw.zeropick.member.domain;

import jakarta.persistence.*;
import kw.zeropick.common.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Bookmark extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "bookmark_id")
private Long id;

}
15 changes: 14 additions & 1 deletion src/main/java/kw/zeropick/member/domain/Member.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,22 @@

import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import kw.zeropick.common.converter.StringListToStringConverter;
import kw.zeropick.common.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.util.List;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Member {
public class Member extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "member_id")
Expand All @@ -29,5 +32,15 @@ public class Member {
@NotNull
private LocalDate birthDate;

@NotNull
private String password;

@Convert(converter = StringListToStringConverter.class)
private List<String> memberPositiveTag;

@NotNull
@Enumerated(EnumType.STRING)
private State userState;

private LocalDate deleteDate;
}
6 changes: 6 additions & 0 deletions src/main/java/kw/zeropick/member/domain/State.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package kw.zeropick.member.domain;

public enum State {
ACTIVATE ,
INACTIVATE
}
5 changes: 5 additions & 0 deletions src/main/java/kw/zeropick/product/domain/Category.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package kw.zeropick.product.domain;

public enum Category {

}
25 changes: 25 additions & 0 deletions src/main/java/kw/zeropick/product/domain/Image.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package kw.zeropick.product.domain;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Image {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "image_id")
private Long id;

private String imagePath;
}
27 changes: 27 additions & 0 deletions src/main/java/kw/zeropick/product/domain/Ingredient.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package kw.zeropick.product.domain;

import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.*;


@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Ingredient {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ingredient_id")
private Long id;

private Float carb;

private Float protein;

private Float fat;

private Float kcal;

private Float sweet;
}
33 changes: 33 additions & 0 deletions src/main/java/kw/zeropick/product/domain/Product.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package kw.zeropick.product.domain;


import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.*;


@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Product {

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

private String productName;

private String barnd;

@Enumerated(EnumType.STRING)
private Category category;

private Boolean zeroSugar;

private Boolean zeroKcal;

private int price;

}
26 changes: 26 additions & 0 deletions src/main/java/kw/zeropick/review/domain/NegativeTag.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package kw.zeropick.review.domain;

import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NegativeTag {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "negativeTag_id")
private Long id;

private String tagTitle;

private Integer tagCount;

@Enumerated(EnumType.STRING)
private NegativeTagEnum tagNnum;
}
5 changes: 5 additions & 0 deletions src/main/java/kw/zeropick/review/domain/NegativeTagEnum.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package kw.zeropick.review.domain;

public enum NegativeTagEnum {
NEGATIVE_TAG_ENUM
}
32 changes: 32 additions & 0 deletions src/main/java/kw/zeropick/review/domain/PositiveTag.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package kw.zeropick.review.domain;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PositiveTag {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "positiveTag_id")
private Long id;

private String tagTitle;

private Integer tagCount;

@Enumerated(EnumType.STRING)
private PositiveTagEnum tagEnum;
}
5 changes: 5 additions & 0 deletions src/main/java/kw/zeropick/review/domain/PositiveTagEnum.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package kw.zeropick.review.domain;

public enum PositiveTagEnum {
POSITIVE_TAG_ENUM
}
39 changes: 39 additions & 0 deletions src/main/java/kw/zeropick/review/domain/Review.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package kw.zeropick.review.domain;

import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import kw.zeropick.common.domain.BaseEntity;
import kw.zeropick.review.domain.NegativeTagEnum;
import kw.zeropick.review.domain.PositiveTagEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Review extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "review_id")
private Long id;

private List<PositiveTagEnum> positiveTag;

private List<NegativeTagEnum> negativeTag;

@NotNull
private Long rating;

@NotNull
private String title;

@NotNull
private String content;

}