diff --git a/book-my-show/backend/java/bms-monolith/pom.xml b/book-my-show/backend/java/bms-monolith/pom.xml
index 76f9214..a695f1f 100644
--- a/book-my-show/backend/java/bms-monolith/pom.xml
+++ b/book-my-show/backend/java/bms-monolith/pom.xml
@@ -54,6 +54,10 @@
org.springframework.boot
spring-boot-starter-validation
+
+ org.liquibase
+ liquibase-core
+
org.projectlombok
@@ -87,6 +91,14 @@
+
+ org.liquibase
+ liquibase-maven-plugin
+
+ src/main/resources/application.yaml
+ true
+
+
diff --git a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Event.java b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Event.java
index 12dbaf9..0c770c9 100644
--- a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Event.java
+++ b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Event.java
@@ -1,6 +1,7 @@
package org.lbcc.bms.bms_monolith.common.entity;
import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.CascadeType;
@@ -18,12 +19,12 @@
import java.util.List;
@Entity
+@Table(name = "events")
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
@SuperBuilder
public class Event extends BaseAuditingEntity {
- @Size(min=10, max=50, message = "Title must be between 10 and 50 characters.")
@Column(nullable = false, length = 50)
private String title;
diff --git a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/EventShow.java b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/EventShow.java
index a8196e1..b7652a1 100644
--- a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/EventShow.java
+++ b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/EventShow.java
@@ -1,6 +1,7 @@
package org.lbcc.bms.bms_monolith.common.entity;
import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
@@ -21,13 +22,14 @@
import java.util.List;
@Entity
+@Table(name = "event_shows")
@Getter
@SuperBuilder
public class EventShow extends BaseAuditingEntity {
@ElementCollection(targetClass = Genre.class)
- @CollectionTable(name = "show_genre", joinColumns = @JoinColumn(name = "show_id"))
- @Column(name = "genre")
+ @CollectionTable(name = "show_genres", joinColumns = @JoinColumn(name = "show_id"))
+ @Column(name = "label")
@Enumerated(EnumType.STRING)
private List genres;
diff --git a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/EventType.java b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/EventType.java
index e3b4af8..be81f6c 100644
--- a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/EventType.java
+++ b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/EventType.java
@@ -2,6 +2,7 @@
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@@ -9,6 +10,7 @@
import lombok.experimental.SuperBuilder;
@Entity
+@Table(name = "event_types")
@Getter
@Setter
@AllArgsConstructor
diff --git a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Seat.java b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Seat.java
index 0673e1d..536fb65 100644
--- a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Seat.java
+++ b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Seat.java
@@ -1,6 +1,12 @@
package org.lbcc.bms.bms_monolith.common.entity;
-import jakarta.persistence.*;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Column;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@@ -8,6 +14,7 @@
import org.lbcc.bms.bms_monolith.common.enums.OperationalStatus;
@Entity
+@Table(name = "seats")
@Getter
@Setter
@AllArgsConstructor
diff --git a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/SeatType.java b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/SeatType.java
index 4a11cc2..50d26ff 100644
--- a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/SeatType.java
+++ b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/SeatType.java
@@ -2,6 +2,7 @@
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@@ -10,6 +11,7 @@
import java.math.BigDecimal;
@Entity
+@Table(name = "seat_types")
@Getter
@Setter
@AllArgsConstructor
diff --git a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/SeatTypeInShow.java b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/SeatTypeInShow.java
index 45f7fb1..581241e 100644
--- a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/SeatTypeInShow.java
+++ b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/SeatTypeInShow.java
@@ -1,6 +1,7 @@
package org.lbcc.bms.bms_monolith.common.entity;
import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.Column;
@@ -10,16 +11,17 @@
import java.math.BigDecimal;
@Entity
+@Table(name = "seat_type_in_shows")
@Getter
@SuperBuilder
public class SeatTypeInShow extends BaseAuditingEntity {
@ManyToOne
- @JoinColumn(name = "seat_type_id")
+ @JoinColumn(name = "seat_type_id", nullable = false)
private SeatType seatType;
@ManyToOne
- @JoinColumn(name = "show_id")
+ @JoinColumn(name = "show_id", nullable = false)
private EventShow show;
@Column(precision = 10, scale = 2)
diff --git a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Vendor.java b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Vendor.java
index 5feef8b..94e32ff 100644
--- a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Vendor.java
+++ b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Vendor.java
@@ -1,37 +1,51 @@
package org.lbcc.bms.bms_monolith.common.entity;
import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
import jakarta.persistence.Enumerated;
import jakarta.persistence.EnumType;
import jakarta.persistence.Column;
import jakarta.validation.constraints.Size;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.Pattern;
+import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.lbcc.bms.bms_monolith.common.enums.VendorStatus;
+import java.time.LocalDateTime;
+
@Entity
+@Table(name = "vendors")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Vendor extends BaseAuditingEntity {
+ @Column(nullable = false, length = 20)
private String name;
private String contactNumber;
+
+ @Column(nullable = false, length = 100)
private String email;
+
+ @Column(nullable = false)
private String address;
+
+ @Column(nullable = true, length = 100)
private String website;
@Enumerated(EnumType.STRING)
+ @Column(nullable = false, length = 20)
private VendorStatus status;
- @Column(nullable = true, length = 100)
- @Size(min = 10, max = 100, message = "Registration date must be between 10 and 100 characters.")
- private String registrationDate;
+ @Column(nullable = false)
+ private LocalDateTime registrationDate;
@Column(nullable = false, length = 255)
- @Size(min = 25, max = 255, message = "Logo URL must be between 25 and 255 characters.")
private String logoUrl;
}
diff --git a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Venue.java b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Venue.java
index 3e698c7..97d9bea 100644
--- a/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Venue.java
+++ b/book-my-show/backend/java/bms-monolith/src/main/java/org/lbcc/bms/bms_monolith/common/entity/Venue.java
@@ -1,11 +1,13 @@
package org.lbcc.bms.bms_monolith.common.entity;
import jakarta.persistence.Entity;
+import jakarta.persistence.Table;
import jakarta.persistence.Enumerated;
import jakarta.persistence.EnumType;
import jakarta.persistence.CascadeType;
import jakarta.persistence.FetchType;
import jakarta.persistence.OneToMany;
+import jakarta.persistence.Column;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
@@ -19,12 +21,14 @@
import java.util.List;
@Entity
+@Table(name = "venues")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Venue extends BaseAuditingEntity {
+ @Column(nullable = false, unique = true)
private String name;
private String address;
private BigDecimal latitude;
@@ -38,7 +42,6 @@ public class Venue extends BaseAuditingEntity {
private OperationalStatus operationalStatus;
@OneToMany(mappedBy = "venue", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
- @NotNull(message = "Seats list cannot be null.")
- @Size(min = 1, max = 100, message = "Seats list must contain between 1 and 100 seats.")
+ @Column(nullable = false)
private List seats;
}
diff --git a/book-my-show/backend/java/bms-monolith/src/main/resources/application.yaml b/book-my-show/backend/java/bms-monolith/src/main/resources/application.yaml
index a30b3ae..c63a05b 100644
--- a/book-my-show/backend/java/bms-monolith/src/main/resources/application.yaml
+++ b/book-my-show/backend/java/bms-monolith/src/main/resources/application.yaml
@@ -11,8 +11,11 @@ Spring:
hibernate:
dialect: org.hibernate.dialect.MySQLDialect
hibernate:
- ddl-auto: update
+ ddl-auto: validate
show-sql: true
+ liquibase:
+ change-log: classpath:db/changelog/changelog-master.xml
+ enabled: true
server:
servlet:
context-path: /api/v1
\ No newline at end of file
diff --git a/book-my-show/backend/java/bms-monolith/src/main/resources/db/changelog/changelog-master.xml b/book-my-show/backend/java/bms-monolith/src/main/resources/db/changelog/changelog-master.xml
new file mode 100644
index 0000000..0bbd586
--- /dev/null
+++ b/book-my-show/backend/java/bms-monolith/src/main/resources/db/changelog/changelog-master.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
diff --git a/book-my-show/backend/java/bms-monolith/src/main/resources/db/changelog/v1.0/add-constraints.xml b/book-my-show/backend/java/bms-monolith/src/main/resources/db/changelog/v1.0/add-constraints.xml
new file mode 100644
index 0000000..4db64bc
--- /dev/null
+++ b/book-my-show/backend/java/bms-monolith/src/main/resources/db/changelog/v1.0/add-constraints.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/book-my-show/backend/java/bms-monolith/src/main/resources/db/changelog/v1.0/create-tables.xml b/book-my-show/backend/java/bms-monolith/src/main/resources/db/changelog/v1.0/create-tables.xml
new file mode 100644
index 0000000..e580d92
--- /dev/null
+++ b/book-my-show/backend/java/bms-monolith/src/main/resources/db/changelog/v1.0/create-tables.xml
@@ -0,0 +1,202 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+