이제, 서빙된 주문이 완료처리되지 않으면 경고 메세지를 보내는 서비스 기능을 추가해봅시다. 테스트가 용이하게 주문이 서빙된 후 15초가 지나면 경고 메세지를 보내도록 해봅시다.
하지만, 어떻게 아이스크림 주문들 중 서빙된 주문들만 조회할 수 있을까요? 이를 위해서는 document 파일에서 주어진 조건에 맞게 쿼리를 생성하는 기능을 활용해서 리스트 조회 기능을 만들어봅시다.
이제 도큐먼트에서 쿼리를 적용해봅시다.
IcecreamOrderFilter에서 byStatuses 쿼리를 선언하면, 주어진 조건의 쿼리에 맞게 list, find, count, sample 등의 기능을 사용할 수 있습니다. 예를 들면, listByStatuses, countByStatuses 등의 기능을 사용할 수 있습니다.
왜 status가 아닌 statuses 배열을 받아서 쿼리문을 처리할까요? 이는 여러 상태를 동시에 조회하는 경우가 필요할 때에 유용하기 때문입니다. 여러 상태를 동시에 쿼리할 가능성이 있다고 판단되면 배열로 받아서 처리하면 재사용이 가능합니다.