From 2591768efb21bcba1ffe6adcfe6158d4c3025ed8 Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Wed, 28 Jan 2026 07:24:45 +0530 Subject: [PATCH] Return sector 3 payload blocks in card prepare --- .../trisolarisserver/controller/IssuedCards.kt | 16 +++++++++++++--- .../controller/TemporaryRoomCards.kt | 16 +++++++++++++--- .../controller/dto/BookingDtos.kt | 6 +++--- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/IssuedCards.kt b/src/main/kotlin/com/android/trisolarisserver/controller/IssuedCards.kt index fa64086..e4b1805 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/IssuedCards.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/IssuedCards.kt @@ -74,9 +74,9 @@ class IssuedCards( timeData = payload.timeData, issuedAt = issuedAt.toString(), expiresAt = expiresAt.toString(), - issuerUserId = actor.id, - issuerFirebaseUid = actor.firebaseUid, - issuerName = actor.name + sector3Block0 = encodeBlock(actor.name), + sector3Block1 = encodeBlock(actor.id?.toString()), + sector3Block2 = encodeBlock(null) ) } @@ -183,6 +183,16 @@ class IssuedCards( return OffsetDateTime.now(zone) } + private fun encodeBlock(value: String?): String { + val raw = (value ?: "").padEnd(16).take(16) + val bytes = raw.toByteArray(Charsets.UTF_8) + val sb = StringBuilder(bytes.size * 2) + for (b in bytes) { + sb.append(String.format("%02X", b)) + } + return sb.toString() + } + private fun requireMember(propertyId: UUID, principal: MyPrincipal?) { if (principal == null) { throw ResponseStatusException(HttpStatus.UNAUTHORIZED, "Missing principal") diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/TemporaryRoomCards.kt b/src/main/kotlin/com/android/trisolarisserver/controller/TemporaryRoomCards.kt index ae459a2..20c599b 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/TemporaryRoomCards.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/TemporaryRoomCards.kt @@ -60,9 +60,9 @@ class TemporaryRoomCards( timeData = payload.timeData, issuedAt = issuedAt.toString(), expiresAt = expiresAt.toString(), - issuerUserId = actor.id, - issuerFirebaseUid = actor.firebaseUid, - issuerName = actor.name + sector3Block0 = encodeBlock(actor.name), + sector3Block1 = encodeBlock(actor.id?.toString()), + sector3Block2 = encodeBlock(null) ) } @@ -114,6 +114,16 @@ class TemporaryRoomCards( } } + private fun encodeBlock(value: String?): String { + val raw = (value ?: "").padEnd(16).take(16) + val bytes = raw.toByteArray(Charsets.UTF_8) + val sb = StringBuilder(bytes.size * 2) + for (b in bytes) { + sb.append(String.format("%02X", b)) + } + return sb.toString() + } + private fun nowForProperty(timezone: String?): OffsetDateTime { val zone = try { if (timezone.isNullOrBlank()) ZoneId.of("Asia/Kolkata") else ZoneId.of(timezone) 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 aa5ce86..67bb20e 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/dto/BookingDtos.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/dto/BookingDtos.kt @@ -82,7 +82,7 @@ data class CardPrepareResponse( val timeData: String, val issuedAt: String, val expiresAt: String, - val issuerUserId: UUID? = null, - val issuerFirebaseUid: String? = null, - val issuerName: String? = null + val sector3Block0: String? = null, + val sector3Block1: String? = null, + val sector3Block2: String? = null )