diff --git a/src/main/java/com/picnee/travel/domain/badge/entity/Badge.java b/src/main/java/com/picnee/travel/domain/badge/entity/Badge.java new file mode 100644 index 0000000..d3df056 --- /dev/null +++ b/src/main/java/com/picnee/travel/domain/badge/entity/Badge.java @@ -0,0 +1,45 @@ +package com.picnee.travel.domain.badge.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.annotations.UuidGenerator; +import org.hibernate.type.SqlTypes; + +import java.util.UUID; + +import static lombok.AccessLevel.PROTECTED; +import static org.hibernate.annotations.UuidGenerator.Style.RANDOM; + +@Getter +@Entity +@Table(name = "badge") +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor(access = PROTECTED) +public class Badge { + + @Id + @EqualsAndHashCode.Include + @UuidGenerator(style = RANDOM) + @JdbcTypeCode(SqlTypes.VARCHAR) + @Column(name = "user_id", columnDefinition = "VARCHAR(36)") + private UUID id; + @Column(name = "is_first_post") + private Boolean isFirstPost; + @Column(name = "is_first_review") + private Boolean isFirstReview; + @Column(name = "is_first_review_place") + private Boolean isFirstReviewPlace; + @Column(name = "is_star_review") + private Boolean isStarReview; + @Column(name = "is_hot_review") + private Boolean isHotReview; +} diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index babc3d5..ed2db8f 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -1,3 +1,4 @@ +DROP TABLE IF EXISTS `badge`; DROP TABLE IF EXISTS `report`; DROP TABLE IF EXISTS `users_post`; DROP TABLE IF EXISTS `comment`; @@ -226,4 +227,15 @@ CREATE TABLE `image` ( `deleted_at` TIMESTAMP NULL, `is_deleted` BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (`image_id`) +); + +CREATE TABLE `badge` ( + `user_id` VARCHAR(36) NOT NULL, + `is_first_post` BOOLEAN NOT NULL DEFAULT FALSE, + `is_first_review` BOOLEAN NOT NULL DEFAULT FALSE, + `is_first_review_place` BOOLEAN NOT NULL DEFAULT FALSE, + `is_star_review` BOOLEAN NOT NULL DEFAULT FALSE, + `is_hot_review` BOOLEAN NOT NULL DEFAULT FALSE, + PRIMARY KEY (`user_id`), + FOREIGN KEY (`user_id`) REFERENCES `users`(`user_id`) ); \ No newline at end of file