diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/RoomAmenities.kt b/src/main/kotlin/com/android/trisolarisserver/controller/RoomAmenities.kt index 1193e08..2df8b5c 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/RoomAmenities.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/RoomAmenities.kt @@ -5,6 +5,7 @@ import com.android.trisolarisserver.controller.dto.AmenityUpsertRequest import com.android.trisolarisserver.models.room.RoomAmenity import com.android.trisolarisserver.repo.AppUserRepo import com.android.trisolarisserver.repo.RoomAmenityRepo +import com.android.trisolarisserver.repo.RoomTypeRepo import com.android.trisolarisserver.security.MyPrincipal import org.springframework.http.HttpStatus import org.springframework.security.core.annotation.AuthenticationPrincipal @@ -24,6 +25,7 @@ import java.util.UUID @RequestMapping("/amenities") class RoomAmenities( private val roomAmenityRepo: RoomAmenityRepo, + private val roomTypeRepo: RoomTypeRepo, private val appUserRepo: AppUserRepo ) { @@ -86,6 +88,9 @@ class RoomAmenities( val amenity = roomAmenityRepo.findById(amenityId).orElse(null) ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, "Amenity not found") + if (roomTypeRepo.existsByAmenitiesId(amenityId)) { + throw ResponseStatusException(HttpStatus.CONFLICT, "Amenity is used by room types") + } roomAmenityRepo.delete(amenity) } diff --git a/src/main/kotlin/com/android/trisolarisserver/repo/RoomTypeRepo.kt b/src/main/kotlin/com/android/trisolarisserver/repo/RoomTypeRepo.kt index 614b7d6..032685e 100644 --- a/src/main/kotlin/com/android/trisolarisserver/repo/RoomTypeRepo.kt +++ b/src/main/kotlin/com/android/trisolarisserver/repo/RoomTypeRepo.kt @@ -13,4 +13,5 @@ interface RoomTypeRepo : JpaRepository { fun findByPropertyIdOrderByCode(propertyId: UUID): List fun existsByPropertyIdAndCode(propertyId: UUID, code: String): Boolean fun existsByPropertyIdAndCodeAndIdNot(propertyId: UUID, code: String, id: UUID): Boolean + fun existsByAmenitiesId(id: UUID): Boolean }