Files
TrisolarisServer/src/main/kotlin/com/android/trisolarisserver/config/RazorpayQrRequestSchemaFix.kt
androidlover5842 c0d1ea2b0c
All checks were successful
build-and-deploy / build-deploy (push) Successful in 34s
Widen Razorpay QR payload columns
2026-02-01 10:46:04 +05:30

50 lines
2.1 KiB
Kotlin

package com.android.trisolarisserver.config
import org.springframework.jdbc.core.JdbcTemplate
import org.springframework.stereotype.Component
@Component
class RazorpayQrRequestSchemaFix(
private val jdbcTemplate: JdbcTemplate
) : PostgresSchemaFix(jdbcTemplate) {
override fun runPostgres(jdbcTemplate: JdbcTemplate) {
val hasTable = jdbcTemplate.queryForObject(
"""
select count(*)
from information_schema.tables
where table_name = 'razorpay_qr_request'
""".trimIndent(),
Int::class.java
) ?: 0
if (hasTable == 0) {
logger.info("Creating razorpay_qr_request table")
jdbcTemplate.execute(
"""
create table razorpay_qr_request (
id uuid primary key,
property_id uuid not null references property(id) on delete cascade,
booking_id uuid not null references booking(id) on delete cascade,
qr_id varchar,
amount bigint not null,
currency varchar not null,
status varchar not null,
image_url text,
request_payload text,
response_payload text,
expiry_at timestamptz,
created_at timestamptz not null
)
""".trimIndent()
)
}
logger.info("Ensuring razorpay_qr_request text column sizes")
jdbcTemplate.execute("alter table razorpay_qr_request alter column qr_id type text")
jdbcTemplate.execute("alter table razorpay_qr_request alter column currency type text")
jdbcTemplate.execute("alter table razorpay_qr_request alter column status type text")
jdbcTemplate.execute("alter table razorpay_qr_request alter column image_url type text")
jdbcTemplate.execute("alter table razorpay_qr_request alter column request_payload type text")
jdbcTemplate.execute("alter table razorpay_qr_request alter column response_payload type text")
}
}