-
주문(Order)
- 주문을 받을 수 있다.
- 3가지 종류가 있다.
- 배달(DELIVERY)
- 테이크아웃(TAKEOUT)
- 매장 내 식사(EAT_IN)
- 하나 이상의 메뉴가 포함되어야 한다.
- 배달 혹은 테이크아웃인 경우 수량은 0개 이상이어야 한다.
- 전시되지 않은 메뉴는 주문하지 못한다.
- 각 메뉴의 가격과 주문의 가격은 동일해야 한다.
- 받은 주문은 대기 중 상태이다.
- 배달인 경우 배달 주소가 필요하다.
- 매장 내 식사인 경우 비어있는 테이블만 앉을 수 있다.
- 3가지 종류가 있다.
- 대기 중인 주문은 수락할 수 있다.
- 배달인 경우 배달 요청을 한다.
- 수락된 주문은 전달될 수 있다.
- 전달된 주문이 배달인 경우 배달을 시작할 수 있다.
- 배달 중인 주문은 배달이 되어야 한다.
- 주문을 완료할 수 있다.
- 배달인 경우 배달이 되어야 한다.
- 테이크아웃이거나 매장 내 식사인 경우 전달이 되어야 한다.
- 매장 내 식사인 경우 테이블의 손님은 0명, 비어진 상태가 된다.
- 주문을 받을 수 있다.
-
메뉴(Menu)
- 메뉴를 추가할 수 있다.
- 가격은 0원 이상이어야 한다.
- 메뉴 그룹 중 하나에 속해야 한다.
- 각 메뉴 상품(MenuProduct)은 존재하는 상품(Product)이어야 한다.
- 메뉴 상품는 하나의 상품으로 이루어져 있다.
- 메뉴 상품의 상품 개수는 하나 이상이다.
- 메뉴 상품의 가격은 상품 가격 * 개수이다.
- 가격은 각 메뉴 상품 가격의 합보다 비쌀 수 없다.
- 이름이 있어야 한다.
- 욕설이 포함될 수 없다.
- 메뉴 전시 여부를 정할 수 있다.
- 메뉴의 가격을 변경할 수 있다.
- 가격은 0원 이상 이어야 한다.
- 메뉴는 전시할 수 있다.
- 메뉴의 가격이 각 메뉴 상품의 합보다 큰 경우 전시할 수 없다.
- 메뉴는 숨길 수 있다.
- 메뉴를 추가할 수 있다.
-
상품(Product)
- 상품을 등록할 수 있다.
- 가격은 0원 이상 이어야 한다.
- 이름이 있어야 한다.
- 욕설이 포함될 수 없다.
- 상품의 가격을 변경할 수 있다.
- 가격은 0원 이상 이어야 한다.
- 매뉴들의 가격이 각 메뉴 상품의 합보다 큰 경우 메뉴는 전시될 수 없다.
- 상품을 등록할 수 있다.
-
테이블(OrderTable)
- 테이블을 추가할 수 있다.
- 이름이 있어야 한다.
- 테이블에 앉을 수 있다.
- 테이블을 비울 수 있다.
- 주문의 상태가 완료가 되지 않으면 비울 수 없다.
- 손님의 수를 변경할 수 있다.
- 변경할 손님의 수는 0명 이상 이어야 한다.
- 테이블이 비어 있다면 변경할 수 없다.
- 테이블을 추가할 수 있다.
-
메뉴 그룹(MenuGroup)
- 메뉴 그룹을 추가할 수 있다.
- 이름이 있어야 한다.
- 이름은 공백일 수 없다.
- 이름이 있어야 한다.
- 메뉴 그룹을 추가할 수 있다.
한글명 | 영문명 | 설명 |
---|---|---|