From 5c3ff5b7ff1c44bde228e66bd456d1efab02a2c9 Mon Sep 17 00:00:00 2001
From: razzanYoni <13521087@mahasiswa.itb.ac.id>
Date: Wed, 1 Nov 2023 17:45:51 +0700
Subject: [PATCH] feat : subscription model

---
 .../java/org/tonality/model/Subscription.java | 38 +++++++++++++++++++
 .../org/tonality/type/SubscriptionStatus.java |  8 ++++
 2 files changed, 46 insertions(+)
 create mode 100644 src/main/java/org/tonality/model/Subscription.java
 create mode 100644 src/main/java/org/tonality/type/SubscriptionStatus.java

diff --git a/src/main/java/org/tonality/model/Subscription.java b/src/main/java/org/tonality/model/Subscription.java
new file mode 100644
index 0000000..74deb62
--- /dev/null
+++ b/src/main/java/org/tonality/model/Subscription.java
@@ -0,0 +1,38 @@
+package org.tonality.model;
+
+import org.tonality.type.SubscriptionStatus;
+
+import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.ColumnDefault;
+
+import javax.persistence.*;
+import java.util.Date;
+
+@Entity(name = "subscription")
+public class Subscription {
+    @Id
+    @GeneratedValue(generator = "increment")
+    @GenericGenerator(name = "increment", strategy = "increment")
+    @Column(name = "subscription_id")
+    private long subscriptionId;
+
+    @Column(name = "user_id")
+    private long userId;
+
+    @Column(name = "album_id")
+    private long albumId;
+
+    @Column(name = "subscription_status")
+    @Enumerated(EnumType.STRING)
+    private SubscriptionStatus status;
+
+    @Column(name = "created_at")
+    @Temporal(TemporalType.TIMESTAMP)
+    @ColumnDefault("'CURRENT_TIMESTAMP'")
+    private Date createdAt;
+
+    @Column(name = "updated_at")
+    @Temporal(TemporalType.TIMESTAMP)
+    @ColumnDefault("'CURRENT_TIMESTAMP'")
+    private Date updatedAt;
+}
diff --git a/src/main/java/org/tonality/type/SubscriptionStatus.java b/src/main/java/org/tonality/type/SubscriptionStatus.java
new file mode 100644
index 0000000..5f6c666
--- /dev/null
+++ b/src/main/java/org/tonality/type/SubscriptionStatus.java
@@ -0,0 +1,8 @@
+package org.tonality.type;
+
+public enum SubscriptionStatus {
+    PENDING,
+    ACTIVE,
+    REJECTED,
+    EXPIRED,
+}
-- 
GitLab