37 lines
966 B
Kotlin
37 lines
966 B
Kotlin
package com.android.trisolarisserver.db.repo
|
|
|
|
|
|
import com.android.trisolarisserver.models.room.Room
|
|
import org.springframework.data.jpa.repository.JpaRepository
|
|
import org.springframework.data.jpa.repository.Query
|
|
import org.springframework.data.repository.query.Param
|
|
import java.util.UUID
|
|
|
|
interface RoomRepo : JpaRepository<Room, UUID> {
|
|
|
|
@Query("""
|
|
select r
|
|
from Room r
|
|
where r.property.id = :propertyId
|
|
and r.active = true
|
|
and r.maintenance = false
|
|
and not exists (
|
|
select 1 from RoomStay rs
|
|
where rs.room = r
|
|
and rs.toAt is null
|
|
)
|
|
order by r.roomNumber
|
|
""")
|
|
fun findFreeRooms(@Param("propertyId") propertyId: UUID): List<Room>
|
|
|
|
@Query("""
|
|
select r
|
|
from Room r
|
|
join RoomStay rs on rs.room = r
|
|
where r.property.id = :propertyId
|
|
and rs.toAt is null
|
|
order by r.roomNumber
|
|
""")
|
|
fun findOccupiedRooms(@Param("propertyId") propertyId: UUID): List<Room>
|
|
}
|