- 상품을 등록할 수 있다.
- 상품의 가격이 올바르지 않으면 등록할 수 없다.
- 상품의 가격은 0 원 이상이어야 한다.
- 상품의 목록을 조회할 수 있다.
- 메뉴 그룹을 등록할 수 있다.
- 메뉴 그룹의 목록을 조회할 수 있다.
- 1 개 이상의 등록된 상품으로 메뉴를 등록할 수 있다.
- 메뉴의 가격이 올바르지 않으면 등록할 수 없다.
- 메뉴의 가격은 0 원 이상이어야 한다.
- 메뉴에 속한 상품 금액의 합은 메뉴의 가격보다 크거나 같아야 한다.
- 메뉴는 특정 메뉴 그룹에 속해야 한다.
- 메뉴의 목록을 조회할 수 있다.
- 주문 테이블을 등록할 수 있다.
- 주문 테이블의 목록을 조회할 수 있다.
- 빈 테이블 설정 또는 해지할 수 있다.
- 단체 지정된 주문 테이블은 빈 테이블 설정 또는 해지할 수 없다.
- 주문 상태가 조리 또는 식사인 주문 테이블은 빈 테이블 설정 또는 해지할 수 없다.
- 방문한 손님 수를 입력할 수 있다.
- 방문한 손님 수가 올바르지 않으면 입력할 수 없다.
- 방문한 손님 수는 0 명 이상이어야 한다.
- 빈 테이블은 방문한 손님 수를 입력할 수 없다.
- 2 개 이상의 빈 테이블을 단체로 지정할 수 있다.
- 단체 지정은 중복될 수 없다.
- 단체 지정을 해지할 수 있다.
- 단체 지정된 주문 테이블의 주문 상태가 조리 또는 식사인 경우 단체 지정을 해지할 수 없다.
- 1 개 이상의 등록된 메뉴로 주문을 등록할 수 있다.
- 빈 테이블에는 주문을 등록할 수 없다.
- 주문의 목록을 조회할 수 있다.
- 주문 상태를 변경할 수 있다.
- 주문 상태가 계산 완료인 경우 변경할 수 없다.
한글명 | 영문명 | 설명 |
---|---|---|
상품 | product | 메뉴를 관리하는 기준이 되는 데이터 |
한글명 | 영문명 | 설명 |
---|---|---|
메뉴 그룹 | menu group | 메뉴 묶음, 분류 |
메뉴 | menu | 메뉴 그룹에 속하는 실제 주문 가능 단위 |
메뉴 상품 | menu product | 메뉴에 속하는 수량이 있는 상품 |
금액 | amount | 가격 * 수량 |
한글명 | 영문명 | 설명 |
---|---|---|
주문 테이블 | order table | 매장에서 주문이 발생하는 영역 |
빈 테이블 | empty table | 주문을 등록할 수 없는 주문 테이블 |
주문 | order | 매장에서 발생하는 주문 |
주문 상태 | order status | 주문은 조리 ➜ 식사 ➜ 계산 완료 순서로 진행된다. |
방문한 손님 수 | number of guests | 필수 사항은 아니며 주문은 0명으로 등록할 수 있다. |
단체 지정 | table group | 통합 계산을 위해 개별 주문 테이블을 그룹화하는 기능 |
주문 항목 | order line item | 주문에 속하는 수량이 있는 메뉴 |
매장 식사 | eat in | 포장하지 않고 매장에서 식사하는 것 |
Product
은 번호와 이름, 가격을 가진다.
MenuGroup
은 번호와 이름을 가진다.Menu
는 번호와 이름, 가격,MenuProducts
를 가진다.MenuProducts
의 금액의 합은Menu
의 가격보다 크거나 같다.Menu
는 특정MenuGroup
에 속한다.
OrderTable
은 번호와 방문한 손님 수를 가진다.OrderTable
에Order
를 등록할 수 있다.- 2 개 이상의
EmptyTable
로TableGroup
을 생성할 수 있다. TableGroup
은 생성 시간을 가진다.TableGroup
에 속한EmptyTable
은 주문할 수 있게 된다.TableGroup
에 속하더라도 개별OrderTable
에Order
를 등록한다.TableGroup
에 속한OrderTable
의 모든Order
가 계산되면TableGroup
을 해지할 수 있다.Order
는 번호와 주문 상태, 주문 시간,OrderLineItems
를 가진다.Order
가 취소되거나 변경되더라도 기존Order
는 수정되지 않는다.