diff --git a/src/main/java/com/example/solidconnection/news/domain/LikedNews.java b/src/main/java/com/example/solidconnection/news/domain/LikedNews.java new file mode 100644 index 000000000..a50e31659 --- /dev/null +++ b/src/main/java/com/example/solidconnection/news/domain/LikedNews.java @@ -0,0 +1,36 @@ +package com.example.solidconnection.news.domain; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.persistence.UniqueConstraint; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@Table(uniqueConstraints = { + @UniqueConstraint( + name = "uk_liked_news_site_user_id_news_id", + columnNames = {"site_user_id", "news_id"} + ) +}) +public class LikedNews { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "news_id") + private long newsId; + + @Column(name = "site_user_id") + private long siteUserId; +} diff --git a/src/main/resources/db/migration/V21__create_liked_news_table.sql b/src/main/resources/db/migration/V21__create_liked_news_table.sql new file mode 100644 index 000000000..e80f65fc1 --- /dev/null +++ b/src/main/resources/db/migration/V21__create_liked_news_table.sql @@ -0,0 +1,9 @@ +CREATE TABLE liked_news ( + id BIGINT NOT NULL AUTO_INCREMENT, + news_id BIGINT NOT NULL, + site_user_id BIGINT NOT NULL, + PRIMARY KEY (id), + CONSTRAINT uk_liked_news_site_user_id_news_id UNIQUE (site_user_id, news_id), + CONSTRAINT fk_liked_news_news_id FOREIGN KEY (news_id) REFERENCES news(id), + CONSTRAINT fk_liked_news_site_user_id FOREIGN KEY (site_user_id) REFERENCES site_user(id) +);