feat(api): add REST controllers, services, entities and 15-min timeline grid

This commit is contained in:
DanielS
2026-08-19 00:44:33 +02:00
parent 52b0728510
commit 22469f557c
16 changed files with 619 additions and 17 deletions

View File

@@ -0,0 +1,11 @@
package com.caspos.repository;
import com.caspos.domain.Guest;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.UUID;
@Repository
public interface GuestRepository extends JpaRepository<Guest, UUID> {
}

View File

@@ -0,0 +1,30 @@
package com.caspos.repository;
import com.caspos.domain.Reservation;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.util.List;
import java.util.UUID;
@Repository
public interface ReservationRepository extends JpaRepository<Reservation, UUID> {
@Query("""
SELECT r FROM Reservation r
WHERE CAST(r.startTime AS date) = :date
ORDER BY r.startTime ASC
""")
List<Reservation> findByDate(@Param("date") LocalDate date);
@Query("""
SELECT r FROM Reservation r
WHERE r.startTime < :end AND r.endTime > :start
AND r.status NOT IN ('CANCELLED', 'NO_SHOW')
""")
List<Reservation> findOverlapping(@Param("start") OffsetDateTime start, @Param("end") OffsetDateTime end);
}

View File

@@ -0,0 +1,14 @@
package com.caspos.repository;
import com.caspos.domain.RestaurantTable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.UUID;
@Repository
public interface TableRepository extends JpaRepository<RestaurantTable, UUID> {
List<RestaurantTable> findByDiningAreaId(UUID diningAreaId);
List<RestaurantTable> findAllByOrderByDiningAreaDisplayOrderAscTableNumberAsc();
}