From f342b229f4544e9243407dc81ed9d1a436fafa61 Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Thu, 29 Jan 2026 09:34:32 +0530 Subject: [PATCH] Add expected guest count on booking --- .../config/BookingSchemaFix.kt | 27 +++++++++++++++++++ .../controller/BookingFlow.kt | 1 + .../controller/dto/BookingDtos.kt | 1 + .../models/booking/Booking.kt | 3 +++ 4 files changed, 32 insertions(+) create mode 100644 src/main/kotlin/com/android/trisolarisserver/config/BookingSchemaFix.kt diff --git a/src/main/kotlin/com/android/trisolarisserver/config/BookingSchemaFix.kt b/src/main/kotlin/com/android/trisolarisserver/config/BookingSchemaFix.kt new file mode 100644 index 0000000..593dd4e --- /dev/null +++ b/src/main/kotlin/com/android/trisolarisserver/config/BookingSchemaFix.kt @@ -0,0 +1,27 @@ +package com.android.trisolarisserver.config + +import org.springframework.jdbc.core.JdbcTemplate +import org.springframework.stereotype.Component + +@Component +class BookingSchemaFix( + private val jdbcTemplate: JdbcTemplate +) : PostgresSchemaFix(jdbcTemplate) { + + override fun runPostgres(jdbcTemplate: JdbcTemplate) { + val hasExpectedGuestCount = jdbcTemplate.queryForObject( + """ + select count(*) + from information_schema.columns + where table_name = 'booking' + and column_name = 'expected_guest_count' + """.trimIndent(), + Int::class.java + ) ?: 0 + + if (hasExpectedGuestCount == 0) { + logger.info("Adding booking.expected_guest_count column") + jdbcTemplate.execute("alter table booking add column expected_guest_count integer") + } + } +} diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/BookingFlow.kt b/src/main/kotlin/com/android/trisolarisserver/controller/BookingFlow.kt index af59988..e507afa 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/BookingFlow.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/BookingFlow.kt @@ -110,6 +110,7 @@ class BookingFlow( maleCount = request.maleCount, femaleCount = request.femaleCount, totalGuestCount = totalGuestCount, + expectedGuestCount = request.expectedGuestCount, notes = request.notes, createdBy = actor, updatedAt = now diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/dto/BookingDtos.kt b/src/main/kotlin/com/android/trisolarisserver/controller/dto/BookingDtos.kt index 6c027f2..4189d70 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/dto/BookingDtos.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/dto/BookingDtos.kt @@ -22,6 +22,7 @@ data class BookingCreateRequest( val childCount: Int? = null, val maleCount: Int? = null, val femaleCount: Int? = null, + val expectedGuestCount: Int? = null, val notes: String? = null ) diff --git a/src/main/kotlin/com/android/trisolarisserver/models/booking/Booking.kt b/src/main/kotlin/com/android/trisolarisserver/models/booking/Booking.kt index 7b83eb0..fb12c63 100644 --- a/src/main/kotlin/com/android/trisolarisserver/models/booking/Booking.kt +++ b/src/main/kotlin/com/android/trisolarisserver/models/booking/Booking.kt @@ -71,6 +71,9 @@ class Booking( @Column(name = "total_guest_count") var totalGuestCount: Int? = null, + @Column(name = "expected_guest_count") + var expectedGuestCount: Int? = null, + var notes: String? = null, @ManyToOne(fetch = FetchType.LAZY)