From 083909938a4a720d5698531e9f8a4eaadc0ac6d4 Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Tue, 27 Jan 2026 16:09:54 +0530 Subject: [PATCH] Attach room type code and tags to room images --- .../android/trisolarisserver/controller/RoomImages.kt | 7 ++++++- .../trisolarisserver/controller/dto/RoomDtos.kt | 2 ++ .../android/trisolarisserver/models/room/RoomImage.kt | 11 +++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/RoomImages.kt b/src/main/kotlin/com/android/trisolarisserver/controller/RoomImages.kt index 1efaf01..3bc91ae 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/RoomImages.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/RoomImages.kt @@ -59,7 +59,8 @@ class RoomImages( @AuthenticationPrincipal principal: MyPrincipal?, @RequestParam("file") file: MultipartFile, @RequestParam(required = false) sortOrder: Int?, - @RequestParam(required = false) category: String? + @RequestParam(required = false) category: String?, + @RequestParam(required = false) tags: List? ): RoomImageResponse { requirePrincipal(principal) propertyAccess.requireMember(propertyId, principal!!.userId) @@ -82,6 +83,8 @@ class RoomImages( thumbnailPath = stored.thumbnailPath, contentType = stored.contentType, sizeBytes = stored.sizeBytes, + roomTypeCode = room.roomType.code, + tags = tags?.toMutableSet() ?: mutableSetOf(), sortOrder = sortOrder, category = category ) @@ -134,10 +137,12 @@ private fun RoomImage.toResponse(baseUrl: String): RoomImageResponse { id = id, propertyId = property.id!!, roomId = room.id!!, + roomTypeCode = roomTypeCode, url = "$baseUrl/properties/${property.id}/rooms/${room.id}/images/$id/file", thumbnailUrl = "$baseUrl/properties/${property.id}/rooms/${room.id}/images/$id/file?size=thumb", contentType = contentType, sizeBytes = sizeBytes, + tags = tags.toSet(), sortOrder = sortOrder, category = category, createdAt = createdAt.toString() diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/dto/RoomDtos.kt b/src/main/kotlin/com/android/trisolarisserver/controller/dto/RoomDtos.kt index b13d38c..a977dd0 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/dto/RoomDtos.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/dto/RoomDtos.kt @@ -34,10 +34,12 @@ data class RoomImageResponse( val id: UUID, val propertyId: UUID, val roomId: UUID, + val roomTypeCode: String?, val url: String, val thumbnailUrl: String, val contentType: String, val sizeBytes: Long, + val tags: Set, val sortOrder: Int?, val category: String?, val createdAt: String diff --git a/src/main/kotlin/com/android/trisolarisserver/models/room/RoomImage.kt b/src/main/kotlin/com/android/trisolarisserver/models/room/RoomImage.kt index 9996209..4c1d363 100644 --- a/src/main/kotlin/com/android/trisolarisserver/models/room/RoomImage.kt +++ b/src/main/kotlin/com/android/trisolarisserver/models/room/RoomImage.kt @@ -33,6 +33,17 @@ class RoomImage( @Column(name = "size_bytes", nullable = false) var sizeBytes: Long, + @Column(name = "room_type_code") + var roomTypeCode: String? = null, + + @ElementCollection(fetch = FetchType.EAGER) + @CollectionTable( + name = "room_image_tag", + joinColumns = [JoinColumn(name = "room_image_id")] + ) + @Column(name = "tag", nullable = false) + var tags: MutableSet = mutableSetOf(), + @Column(name = "sort_order") var sortOrder: Int? = null,