From 73e55d6559539b0abc840e54eb1e11491cd1dabb Mon Sep 17 00:00:00 2001
From: razzanYoni <13521087@mahasiswa.itb.ac.id>
Date: Thu, 2 Nov 2023 00:39:00 +0700
Subject: [PATCH] refactor: subscription table

---
 .../java/org/tonality/model/Subscription.java | 32 ++++++++++++++-----
 1 file changed, 24 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/tonality/model/Subscription.java b/src/main/java/org/tonality/model/Subscription.java
index 74deb62..56734ce 100644
--- a/src/main/java/org/tonality/model/Subscription.java
+++ b/src/main/java/org/tonality/model/Subscription.java
@@ -1,38 +1,54 @@
 package org.tonality.model;
 
+import lombok.Getter;
+import lombok.Setter;
+
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
+import org.hibernate.annotations.CreationTimestamp;
+import org.hibernate.annotations.UpdateTimestamp;
 import org.tonality.type.SubscriptionStatus;
 
 import org.hibernate.annotations.GenericGenerator;
 import org.hibernate.annotations.ColumnDefault;
+import org.tonality.util.HibernateUtil;
 
 import javax.persistence.*;
+import java.io.Serializable;
 import java.util.Date;
 
+@Getter
+@Setter
 @Entity(name = "subscription")
-public class Subscription {
+@Table(name = "subscription")
+public class Subscription implements Serializable {
     @Id
     @GeneratedValue(generator = "increment")
     @GenericGenerator(name = "increment", strategy = "increment")
     @Column(name = "subscription_id")
     private long subscriptionId;
 
-    @Column(name = "user_id")
+    @Column(name = "user_id", nullable = false)
     private long userId;
 
-    @Column(name = "album_id")
+    @Column(name = "album_id", nullable = false)
     private long albumId;
 
-    @Column(name = "subscription_status")
+    @Column(name = "subscription_status", nullable = false)
     @Enumerated(EnumType.STRING)
+    @ColumnDefault("'PENDING'")
     private SubscriptionStatus status;
 
-    @Column(name = "created_at")
+    @Column(name = "created_at", updatable = false, nullable = false)
+    @CreationTimestamp
     @Temporal(TemporalType.TIMESTAMP)
-    @ColumnDefault("'CURRENT_TIMESTAMP'")
+    @ColumnDefault("CURRENT_TIMESTAMP(6)")
     private Date createdAt;
 
-    @Column(name = "updated_at")
+    @Column(name = "updated_at", nullable = false)
+    @UpdateTimestamp
     @Temporal(TemporalType.TIMESTAMP)
-    @ColumnDefault("'CURRENT_TIMESTAMP'")
+    @ColumnDefault("CURRENT_TIMESTAMP(6) on update CURRENT_TIMESTAMP(6)")
     private Date updatedAt;
 }
-- 
GitLab