❌요청 실패
🤔 개선할 사항
- 상품을 생성할 수 있다.
- 🔑 상품의 아이디를 지정할 수 있다
- ❌ 만약 해당 아이디를 가진 상품이 있다면 예외가 발생한다.
- 상품은 이름을 갖는다.
- 상품은 가격을 갖는다.
- 🔑 상품의 아이디를 지정할 수 있다
- 상품의 목록을 조회할 수 있다.
- 메뉴 상품은 메뉴 생성을 통해서만 생성할 수 있다.
- 구성이 똑같은 메뉴 상품이더라도 메뉴1, 메뉴2에 포함된 메뉴 상품은 다른 것이다.
- 🔑seq 라는 식별자를 갖는다.
- ❌ 만약 이미 존재하는 식별자일 시 예외가 발생한다.
- 값을 명시해주지 않으면 자동으로 값이 생성된다.
- 메뉴의 아이디를 갖는다.
- 메뉴 상품은 메뉴 생성을 통해서만 만들 수 있다. 메뉴 아이디는 해당 메뉴의 아이디를 따른다.
- 상품의 아이디를 갖는다.
- ❌존재하지 않는 상품의 아이디라면 예외가 발생한다.
- 메뉴 그룹을 생성할 수 있다.
- 🔑 아이디를 지정해줄 수 있다.
- ❌이미 존재하는 아이디면 예외가 발생한다.
- 지정해주지 않는다면 자동으로 생성된다.
- 메뉴 그룹 목록을 조회할 수 있다.
-
메뉴를 생성할 수 있다.
- 메뉴 아이디를 지정해줄 수 있다.
- ❌ 만약 해당 아이디 값이 이미 존재하면 예외가 발생한다.
- 값을 명시해주지 않으면 자동으로 값이 생성된다.
- 🤔메뉴 이름을 가질 수 있다.
- 해당 값은 null 로 넣을 수 있다.
- null 일 경우 이름을 가지지 않는다.
- 가격을 가진다.
- ❌가격은 꼭 메뉴 상품들의 합보다 클 수 없다.
- ❌가격이 없다면 예외가 발생한다.
- ❌가격이 음수라면 예외가 발생한다.
- 메뉴 그룹을 가져야한다.
- ❌존재하지 않는 메뉴 그룹이라면 예외가 발생한다
- 메뉴 상품들을 가진다.
- 메뉴 아이디를 지정해줄 수 있다.
-
메뉴의 목록을 조회할 수 있다.
-
주문 테이블을 생성할 수 있다.
- 🔑주문 테이블의 아이디를 지정해주더라도 무시되고 자동으로 생성된다.
- 테이블 그룹을 지정해주더라도 무시된다. 테이블 그룹은 별개로 지정해주어야 한다.
- 주문 테이블에 손님의 수를 지정해줄 수 있다.
- 🤔음수의 손님도 지정해줄 수 있다.
- 테이블이 비었는지 여부를 지정해줄 수 있다.
- 🤔주문 테이블을 생성할 당시에는 빈 테이블로도 지정할 수 있다.
-
주문 테이블을 비우거나 찬 상태로 만들 수 있다.
- 🤔 손님 수, 테이블 그룹을 보내더라도 해당 값은 무시한다.
- 존재하지 않는 주문 테이블이면 예외가 발생한다.
- 주문 테이블은 URL 에 포함된 주문 테이블 아이디로 식별한다.
- 🤔주문 테이블 속 주문 테이블 아이디는 무시된다.
- 주문 테이블은 URL 에 포함된 주문 테이블 아이디로 식별한다.
- ❌ 만약 주문 테이블이 테이블 그룹에 포함되어있다면 변경할 수 없다
- ❌ 만약 주문 테이블에 조리 중이거나 식사 중인 주문이 포함되어 있으면 변경할 수 없다.
-
손님 수를 바꿀 수 있다.
- 🤔 테이블이 빈 테이블인지에 대한 값, 테이블 그룹 값은 무시된다.
- 존재하지 않는 주문 테이블이면 예외가 발생한다.
- 주문 테이블은 URL 에 포함된 주문 테이블 아이디로 식별한다.
- 🤔주문 테이블 속 주문 테이블 아이디는 무시된다.
- 주문 테이블은 URL 에 포함된 주문 테이블 아이디로 식별한다.
- ❌주문 수가 음수면 예외가 발생한다.
- ❌만약 빈 테이블에 손님 수를 바꾸려하면 예외가 발생한다.
-
주문 테이블의 목록을 조회할 수 있다.
- 테이블 그룹을 생성할 수 있다.
- 테이블 그룹은 2개 이상의 주문 테이블로 구성된다
- ❌1 이하일 경우 생성할 수 없다.
- ❌주문 테이블이 하나라도 존재하지 않는 테이블이라면 예외가 발생한다.
- ❌주문 테이블이 하나라도 빈 테이블이 아니라면 예외가 발생한다.
- ❌주문 테이블이 하나라도 이미 테이블 그룹에 포함되어 있다면 예외가 발생한다.
- 🤔테이블의 생성 시간값은 무시되고 요청한 시간으로 자동 생성된다.
- 테이블 그룹은 2개 이상의 주문 테이블로 구성된다
- 테이블 그룹을 해제할 수 있다.
- ❌ 만약 테이블 그룹의 주문 테이블들에 포함된 주문중 하나라도 요리 중이거나 식사 중이면 해제할 수 없다.
-
주문을 생성할 수 있다.
- 🔑 주문의 아이디를 지정하더라도 무시한 후에 자동으로 생성된다.
- 주문은 주문 테이블에 포함된다.
- ❌ 만약 주문 테이블이 존재하지 않는다면 예외가 발생한다.
- ❌ 빈 테이블에서 주문하면 예외가 발생한다. 주문 테이블을 먼저 생성한 후 주문이 생성 가능하다.
- 주문은 조리 -> 식사 -> 계산 순으로 진행되는 상태가 있다.
- 주문은 초기에 조리 상태로 생성된다.
- 주문은 주문된 시간을 가진다.
- 주문은 주문 항목들로 이루어진다.
- 🔑 주문 항목들은 주문 아이디가 항상 포함된 주문의 아이디로 저장된다.
- ❌ 주문 항목들이 비어있다면 예외가 발생한다.
- ❌ 주문 항목들의 메뉴는 고유해야한다. 에를 들어 무 2개, 무 3개는 같은 주문에 묶일 수 없다.
-
주문의 상태를 바꿀 수 있다.
- ❌존재하지 않는 주문이면 예외가 발생한다.
- ❌주문이 완료 상태의 주문을 바꾸면 예외가 발생한다.
-
주문 목록을 조회할 수 있다.
한글명 | 영문명 | 설명 |
---|---|---|
상품 | 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 | 포장하지 않고 매장에서 식사하는 것 |