Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions book-my-show/backend/java/bms-monolith/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
Expand Down Expand Up @@ -87,6 +91,14 @@
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<configuration>
<propertyFile>src/main/resources/application.yaml</propertyFile>
<propertyFileWillOverride>true</propertyFileWillOverride>
</configuration>
</plugin>
</plugins>
</build>

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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;

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<Genre> genres;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.SuperBuilder;

@Entity
@Table(name = "event_types")
@Getter
@Setter
@AllArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
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;
import lombok.Setter;
import org.lbcc.bms.bms_monolith.common.enums.OperationalStatus;

@Entity
@Table(name = "seats")
@Getter
@Setter
@AllArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -10,6 +11,7 @@
import java.math.BigDecimal;

@Entity
@Table(name = "seat_types")
@Getter
@Setter
@AllArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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)
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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;
Expand All @@ -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<Seat> seats;
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.3.xsd">

<include file="db/changelog/v1.0/create-tables.xml" />
<include file="db/changelog/v1.0/add-constraints.xml" />
</databaseChangeLog>
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.0.xsd">

<!-- Foreign Key Constraints for Event -->
<changeSet id="1-add-event-foreign-keys" author="damini">
<addForeignKeyConstraint baseTableName="events" baseColumnNames="vendor_id"
referencedTableName="vendors" referencedColumnNames="id"
constraintName="fk_events_vendor" />
<addForeignKeyConstraint baseTableName="events" baseColumnNames="venue_id"
referencedTableName="venues" referencedColumnNames="id"
constraintName="fk_events_venues" />
<addForeignKeyConstraint baseTableName="events" baseColumnNames="event_type_id"
referencedTableName="event_types" referencedColumnNames="id"
constraintName="fk_events_event_types" />
</changeSet>

<!-- Foreign Key Constraints for Event Show -->
<changeSet id="2-add-event-show-foreign-keys" author="damini">
<addForeignKeyConstraint baseTableName="event_shows" baseColumnNames="event_id"
referencedTableName="events" referencedColumnNames="id"
constraintName="fk_event_shows_event" />
</changeSet>

<!-- Foreign Key Constraints for Seat -->
<changeSet id="3-add-seat-foreign-keys" author="damini">
<addForeignKeyConstraint baseTableName="seats" baseColumnNames="seat_type_id"
referencedTableName="seat_types" referencedColumnNames="id"
constraintName="fk_seats_seat_types" />
</changeSet>

<!-- Foreign Key Constraints for Seat in Show -->
<changeSet id="4-add-seat-in-show-foreign-keys" author="damini">
<addForeignKeyConstraint baseTableName="seat_in_show" baseColumnNames="seat_type_in_show_id"
referencedTableName="seat_type_in_shows" referencedColumnNames="id"
constraintName="fk_seat_in_show_seat_type_in_shows" />
<addForeignKeyConstraint baseTableName="seat_in_show" baseColumnNames="show_id"
referencedTableName="event_shows" referencedColumnNames="id"
constraintName="fk_seat_in_show_event_shows" />
</changeSet>


<!-- Foreign Key Constraints for show genre -->
<changeSet id="5-add-venue-foreign-keys" author="damini">
<addForeignKeyConstraint baseTableName="show_genres"
baseColumnNames="show_id"
referencedTableName="event_shows"
referencedColumnNames="id"
constraintName="fk_show_genres_show_id"/>
</changeSet>

<!-- Primary Key Constraints -->
<changeSet id="1-add-primary-key-show-genre" author="damini">
<addPrimaryKey tableName="show_genres" columnNames="show_id, label" />
</changeSet>
</databaseChangeLog>
Loading