From 9c59995c859dd802464e8b71cbd55ad8b76593f3 Mon Sep 17 00:00:00 2001 From: hongsumin <> Date: Sat, 8 Feb 2025 17:15:28 +0900 Subject: [PATCH 01/10] =?UTF-8?q?docs=20(kitchenpos)=20:=20=EC=9A=A9?= =?UTF-8?q?=EC=96=B4=20=EC=82=AC=EC=A0=84=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index eb929c006..cec819e66 100644 --- a/README.md +++ b/README.md @@ -96,8 +96,71 @@ docker compose -p kitchenpos up -d ## 용어 사전 -| 한글명 | 영문명 | 설명 | -| --- | --- | --- | -| | | | +### 상품 + + 한글 명 | 영문 명 | 설명 +----------|----------------------|------------ +| 상품 | product | 판매할 수 있는 상품| +| 상품 가격 | product price | 상품의 판매 가격 (0원 이상)| +| 상품 이름 | product name | 상품의 고유한 이름 (비속어 포함 불가)| +| 상품 목록 | product list |등록된 상품들의 전체 목록| +| 상품 등록 | create product |새로운 상품을 등록하는 기능| +| 상품 가격 변경 | change product price |기존 상품의 가격을 수정하는 기능| +| 상품 목록 조회 | find product list |등록된 상품 목록을 조회하는 기능| + +### 메뉴 그룹 +| 한글명 | 영문명 | 설명 | +|----------|----------------------| --- | +| 메뉴 그룹 | menu group |메뉴를 분류하는 그룹| +| 메뉴 그룹 이름 | menu group name |메뉴 그룹의 고유한 이름 (비워 둘 수 없음)| +| 메뉴 그룹 목록 | menu group list |등록된 메뉴 그룹들의 전체 목록| +| 메뉴 그룹 목록 조회 | find menu group list |등록된 메뉴 그룹 목록을 조회하는 기능| +| 메뉴 그룹 등록 | create menu group |새로운 메뉴 그룹을 등록하는 기능| + + +### 메뉴 +| 한글명 | 영문명 | 설명 | +|----------|-------------------|--------------| +| 메뉴 | menu | 하나 이상의 상품으로 구성된 주문 가능한 항목| +| 메뉴 상품 | menu proudct | 메뉴에 포함된 개별 상품| +| 메뉴 가격 | menu price | 메뉴의 판매 가격 (0원 이상)| +| 메뉴 이름 | menu name | 메뉴의 고유한 이름 (비속어 포함 불가)| +| 메뉴 목록 | menu list | 등록된 메뉴들의 전체 목록| +| 메뉴 등록 | create menu | 새로운 메뉴를 등록하는 기능| +| 메뉴 목록 조회 | find menu list | 등록된 메뉴 목록을 조회하는 기능| +| 메뉴 가격 변경 | change menu price | 기존 메뉴의 가격을 수정하는 기능| +| 메뉴 노출 | display menu | 고객이 메뉴를 볼 수 있도록 설정하는 기능| +| 메뉴 숨김 | hide menu | 고객이 메뉴를 볼 수 없도록 설정하는 기능| + + +### 주문 테이블 +| 한글명 | 영문명 | 설명 | +|--------------|-------------------------|-------------------------------| +| 주문 테이블 | order table | 매장 내에서 고객이 식사하는 테이블| +| 주문 테이블 이름 | order table name | 주문 테이블의 고유한 이름 (비워 둘 수 없음)| +| 방문 손님 수 | number of guests | 주문 테이블에 앉은 손님 수 (0 이상)| +| 주문 테이블 목록 | order table list | 등록된 주문 테이블들의 전체 목록| +| 주문 테이블 등록 | create order table | 새로운 주문 테이블을 등록하는 기능| +| 빈 테이블 해지 | sit order table | 빈 테이블을 해지하는 기능 (손님이 테이블에 앉은 상태)| +| 빈 테이블 설정 | clear order table | 빈 테이블로 설정하는 기능 (손님이 테이블에 없는 상태)| +| 방문 손님 수 변경 | change number of guests | 주문 테이블의 방문한 손님 수를 수정하는 기능| +| 주문 테이블 목록 조회 | find order table list | 등록된 주문 테이블 목록을 조회하는 기능| +### 주문 +| 한글명 | 영문명 | 설명 | +|----------|-----------------|-------------------------------------| +| 주문 | order | 하나 이상의 메뉴 목록| +| 주문 타입 | order type | 주문의 방식 (배달, 포장, 매장 주문)| +| 배달 주문 | delivery | 고객이 배달을 요청한 주문 | +| 포장 주문 | takeout | 고객이 포장하는 주문| +| 매장 주문 | eat in | 고객이 매장에서 식사하는 주문| +| 주문 상태 | order status | 주문의 진행 상태 (대기, 수락됨, 제공됨, 배달 중, 배달 완료, 완료) | +| 주문 대기 | waiting | 주문이 접수 대기 중인 상태| +| 주문 수락 | accepted | 주문을 수락한 상태| +| 주문 제공 | served | 주문된 메뉴가 고객에게 제공된 상태| +| 배달 중 | delivering | 배달 주문이 배달 중인 상태 | +| 배달 완료 | delivered | 배달 주문이 배달이 완료된 상태 | +| 주문 완료 | completed | 주문이 완료된 상태 (배달완료,매장 식사 완료, 포장완료)| +| 주문 목록 | order list | 등록된 주문들의 전체 목록 | +| 주문 목록 조회 | find order list | 등록된 주문 목록을 조회하는 기능| ## 모델링 From efe6862619e8063fced8c6215b4bbfa8629b77ec Mon Sep 17 00:00:00 2001 From: hongsumin <> Date: Sun, 9 Feb 2025 00:44:37 +0900 Subject: [PATCH 02/10] =?UTF-8?q?docs=20(kitchenpos)=20:=20=EC=9A=A9?= =?UTF-8?q?=EC=96=B4=20=EC=82=AC=EC=A0=84=20=EC=A0=95=EB=A6=AC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(=ED=8E=98=EC=96=B4=20=EA=B8=B0=EB=B0=98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 108 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 64 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index cec819e66..04725a481 100644 --- a/README.md +++ b/README.md @@ -101,66 +101,86 @@ docker compose -p kitchenpos up -d 한글 명 | 영문 명 | 설명 ----------|----------------------|------------ -| 상품 | product | 판매할 수 있는 상품| -| 상품 가격 | product price | 상품의 판매 가격 (0원 이상)| -| 상품 이름 | product name | 상품의 고유한 이름 (비속어 포함 불가)| -| 상품 목록 | product list |등록된 상품들의 전체 목록| -| 상품 등록 | create product |새로운 상품을 등록하는 기능| -| 상품 가격 변경 | change product price |기존 상품의 가격을 수정하는 기능| -| 상품 목록 조회 | find product list |등록된 상품 목록을 조회하는 기능| +| 상품 | product | 판매할 수 있는 `상품`| +| 상품 가격 | product price | `상품`의 판매 가격 (0원 이상)| +| 상품 이름 | product name | `상품`의 고유한 이름 (비속어 포함 불가)| +| 상품 목록 | product list |등록된 `상품`들의 전체 목록| +| 상품 등록 | create product |새로운 `상품`을 등록하는 기능| +| 상품 가격 변경 | change product price |기존 `상품`의 가격을 수정하는 기능| +| 상품 목록 조회 | find product list |등록된 `상품` 목록을 조회하는 기능| ### 메뉴 그룹 -| 한글명 | 영문명 | 설명 | -|----------|----------------------| --- | -| 메뉴 그룹 | menu group |메뉴를 분류하는 그룹| -| 메뉴 그룹 이름 | menu group name |메뉴 그룹의 고유한 이름 (비워 둘 수 없음)| -| 메뉴 그룹 목록 | menu group list |등록된 메뉴 그룹들의 전체 목록| -| 메뉴 그룹 목록 조회 | find menu group list |등록된 메뉴 그룹 목록을 조회하는 기능| -| 메뉴 그룹 등록 | create menu group |새로운 메뉴 그룹을 등록하는 기능| +| 한글명 | 영문명 | 설명 | +|-------------|----------------------|-----------------------| +| 메뉴 그룹 | menu group | 메뉴를 분류하는 그룹 | +| 메뉴 그룹 명 | menu group name | `메뉴 그룹`의 이름 | +| 메뉴 그룹 목록 | menu group list | 등록된 `메뉴 그룹`들의 전체 목록 | +| 메뉴 그룹 목록 조회 | find menu group list | 등록된 `메뉴 그룹` 목록을 조회하는 기능 | +| 메뉴 그룹 등록 | create menu group | 새로운 `메뉴 그룹`을 등록하는 기능 | ### 메뉴 -| 한글명 | 영문명 | 설명 | -|----------|-------------------|--------------| -| 메뉴 | menu | 하나 이상의 상품으로 구성된 주문 가능한 항목| -| 메뉴 상품 | menu proudct | 메뉴에 포함된 개별 상품| -| 메뉴 가격 | menu price | 메뉴의 판매 가격 (0원 이상)| -| 메뉴 이름 | menu name | 메뉴의 고유한 이름 (비속어 포함 불가)| -| 메뉴 목록 | menu list | 등록된 메뉴들의 전체 목록| -| 메뉴 등록 | create menu | 새로운 메뉴를 등록하는 기능| -| 메뉴 목록 조회 | find menu list | 등록된 메뉴 목록을 조회하는 기능| -| 메뉴 가격 변경 | change menu price | 기존 메뉴의 가격을 수정하는 기능| -| 메뉴 노출 | display menu | 고객이 메뉴를 볼 수 있도록 설정하는 기능| -| 메뉴 숨김 | hide menu | 고객이 메뉴를 볼 수 없도록 설정하는 기능| +| 한글명 | 영문명 | 설명 | +|----------|-------------------|--------------------------| +| 메뉴 | menu | 하나 이상의 상품으로 구성된 주문 가능한 항목 | +| 메뉴 상품 | menu proudct | `메뉴`에 포함된 개별 상품 | +| 메뉴 가격 | menu price | `메뉴`의 판매 가격 (0원 이상) | +| 메뉴 이름 | menu name | `메뉴`의 고유한 이름 (비속어 포함 불가) | +| 메뉴 목록 | menu list | 등록된 `메뉴`들의 전체 목록 | +| 메뉴 등록 | create menu | 새로운 `메뉴`를 등록하는 기능 | +| 메뉴 목록 조회 | find menu list | 등록된 `메뉴` 목록을 조회하는 기능 | +| 메뉴 가격 변경 | change menu price | 기존 `메뉴`의 가격을 수정하는 기능 | +| 메뉴 노출 | display menu | 고객이 `메뉴`를 볼 수 있도록 설정하는 기능 | +| 메뉴 숨김 | hide menu | 고객이 `메뉴`를 볼 수 없도록 설정하는 기능 | ### 주문 테이블 | 한글명 | 영문명 | 설명 | |--------------|-------------------------|-------------------------------| -| 주문 테이블 | order table | 매장 내에서 고객이 식사하는 테이블| -| 주문 테이블 이름 | order table name | 주문 테이블의 고유한 이름 (비워 둘 수 없음)| -| 방문 손님 수 | number of guests | 주문 테이블에 앉은 손님 수 (0 이상)| -| 주문 테이블 목록 | order table list | 등록된 주문 테이블들의 전체 목록| -| 주문 테이블 등록 | create order table | 새로운 주문 테이블을 등록하는 기능| -| 빈 테이블 해지 | sit order table | 빈 테이블을 해지하는 기능 (손님이 테이블에 앉은 상태)| -| 빈 테이블 설정 | clear order table | 빈 테이블로 설정하는 기능 (손님이 테이블에 없는 상태)| -| 방문 손님 수 변경 | change number of guests | 주문 테이블의 방문한 손님 수를 수정하는 기능| -| 주문 테이블 목록 조회 | find order table list | 등록된 주문 테이블 목록을 조회하는 기능| +| 주문 테이블 | order table | 매장 내에서 고객이 식사하는 `테이블`| +| 주문 테이블 이름 | order table name | `주문 테이블`의 고유한 이름 (비워 둘 수 없음)| +| 방문 손님 수 | number of guests | `주문 테이블`에 앉은 손님 수 (0 이상)| +| 주문 테이블 목록 | order table list | 등록된 `주문 테이블`들의 전체 목록| +| 주문 테이블 등록 | create order table | 새로운 `주문 테이블`을 등록하는 기능| +| 빈 테이블 해지 | sit order table | 빈 `테이블`을 해지하는 기능 (손님이 테이블에 앉은 상태)| +| 빈 테이블 설정 | clear order table | 빈 `테이블`로 설정하는 기능 (손님이 테이블에 없는 상태)| +| 방문 손님 수 변경 | change number of guests | `주문 테이`블의 방문한 손님 수를 수정하는 기능| +| 주문 테이블 목록 조회 | find order table list | 등록된 `주문 테이블` 목록을 조회하는 기능| + ### 주문 | 한글명 | 영문명 | 설명 | |----------|-----------------|-------------------------------------| | 주문 | order | 하나 이상의 메뉴 목록| | 주문 타입 | order type | 주문의 방식 (배달, 포장, 매장 주문)| -| 배달 주문 | delivery | 고객이 배달을 요청한 주문 | -| 포장 주문 | takeout | 고객이 포장하는 주문| -| 매장 주문 | eat in | 고객이 매장에서 식사하는 주문| | 주문 상태 | order status | 주문의 진행 상태 (대기, 수락됨, 제공됨, 배달 중, 배달 완료, 완료) | -| 주문 대기 | waiting | 주문이 접수 대기 중인 상태| -| 주문 수락 | accepted | 주문을 수락한 상태| -| 주문 제공 | served | 주문된 메뉴가 고객에게 제공된 상태| -| 배달 중 | delivering | 배달 주문이 배달 중인 상태 | -| 배달 완료 | delivered | 배달 주문이 배달이 완료된 상태 | -| 주문 완료 | completed | 주문이 완료된 상태 (배달완료,매장 식사 완료, 포장완료)| | 주문 목록 | order list | 등록된 주문들의 전체 목록 | | 주문 목록 조회 | find order list | 등록된 주문 목록을 조회하는 기능| +| 배달 주문 | delivery order | `배달대행사(라이더)`에게 메뉴를 제공받기위한 `주문 유형` 중 하나 | +| 포장 주문 | takeout order | `고객이 직접 메뉴를 수령`하기위한 `주문 유형` 중의 하나 | +| 매장 주문 | table order | `먹고가기 (테이블 식사)`를 하기위한 `주문 유형` 중 하나 | +| 주문 항목 | order item | 고객이 메뉴를 선택 후 `주문`한 내역 | +| 배달 대행사 | delivery agency | 배달 대행 업체 | +| 배달 대행사 호출 | call delivery agency | 배달 대행 업체의 라이더 호출 | +| 배달 주소 | delivery address | 라이더가 배달 해야될 고객의 `배달지 주소` | + + +### 주문 유형 (order type) +| 한글명 | 영문명 | 설명 | +|------|----------|----------------------| +| 배달 | DELIVERY | `배달(배달대행사 호출)`로 주문한 경우 | +| 포장 | TAKEOUT | `포장`으로 주문할 경우 | +| 먹고가기 | EAT_IN | `먹고가기(매장주문)` 주문할 경우 | + +### 주문 상태 (order status) + +| 한글명 | 영문명 | 설명 | +|-------|------------|------------------------| +| 대기 | WAITING | 주문 요청상태 (주문 등록 후 대기상태) | +| 수락 | ACCEPTED | 주문 요청 후 수락상태 | +| 서빙/제공 | SERVED | 주문 수락 후 서빙/제공완료 상태 | +| 배달 | DELIVERING | 서빙/제공완료 후 배달중 상태 | +| 배달완료 | DELIVERED | 배달중 이후 배달완료 상태 | +| 주문완료 | COMPLETED | 주문 완료 상태 | + + ## 모델링 From 638b1f0337b4c8e44e1fe78cf514949321e26299 Mon Sep 17 00:00:00 2001 From: hongsumin <> Date: Sun, 9 Feb 2025 15:56:37 +0900 Subject: [PATCH 03/10] =?UTF-8?q?docs=20(kitchenpos)=20:=20=EC=9A=A9?= =?UTF-8?q?=EC=96=B4=20=ED=86=B5=EC=9D=BC=20(=ED=8E=98=EC=96=B4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 04725a481..43777c435 100644 --- a/README.md +++ b/README.md @@ -97,8 +97,7 @@ docker compose -p kitchenpos up -d ## 용어 사전 -### 상품 - +### 상품 (product) 한글 명 | 영문 명 | 설명 ----------|----------------------|------------ | 상품 | product | 판매할 수 있는 `상품`| @@ -109,7 +108,7 @@ docker compose -p kitchenpos up -d | 상품 가격 변경 | change product price |기존 `상품`의 가격을 수정하는 기능| | 상품 목록 조회 | find product list |등록된 `상품` 목록을 조회하는 기능| -### 메뉴 그룹 +### 메뉴 그룹 (menu group) | 한글명 | 영문명 | 설명 | |-------------|----------------------|-----------------------| | 메뉴 그룹 | menu group | 메뉴를 분류하는 그룹 | @@ -119,7 +118,7 @@ docker compose -p kitchenpos up -d | 메뉴 그룹 등록 | create menu group | 새로운 `메뉴 그룹`을 등록하는 기능 | -### 메뉴 +### 메뉴 (menu) | 한글명 | 영문명 | 설명 | |----------|-------------------|--------------------------| | 메뉴 | menu | 하나 이상의 상품으로 구성된 주문 가능한 항목 | @@ -134,7 +133,7 @@ docker compose -p kitchenpos up -d | 메뉴 숨김 | hide menu | 고객이 `메뉴`를 볼 수 없도록 설정하는 기능 | -### 주문 테이블 +### 주문 테이블 (order table) | 한글명 | 영문명 | 설명 | |--------------|-------------------------|-------------------------------| | 주문 테이블 | order table | 매장 내에서 고객이 식사하는 `테이블`| @@ -147,7 +146,7 @@ docker compose -p kitchenpos up -d | 방문 손님 수 변경 | change number of guests | `주문 테이`블의 방문한 손님 수를 수정하는 기능| | 주문 테이블 목록 조회 | find order table list | 등록된 `주문 테이블` 목록을 조회하는 기능| -### 주문 +### 주문 (order) | 한글명 | 영문명 | 설명 | |----------|-----------------|-------------------------------------| | 주문 | order | 하나 이상의 메뉴 목록| From aca1874abe552d947158dd92a06838f936202bb2 Mon Sep 17 00:00:00 2001 From: hongsumin <> Date: Mon, 10 Feb 2025 23:55:21 +0900 Subject: [PATCH 04/10] =?UTF-8?q?docs=20(kitchenpos)=20:=20=ED=94=BC?= =?UTF-8?q?=EB=93=9C=EB=B0=B1=20=EA=B8=B0=EB=B0=98=20=EC=9A=A9=EC=96=B4=20?= =?UTF-8?q?=EC=82=AC=EC=A0=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 148 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 76 insertions(+), 72 deletions(-) diff --git a/README.md b/README.md index 43777c435..d7beb3d65 100644 --- a/README.md +++ b/README.md @@ -98,88 +98,92 @@ docker compose -p kitchenpos up -d ### 상품 (product) - 한글 명 | 영문 명 | 설명 -----------|----------------------|------------ -| 상품 | product | 판매할 수 있는 `상품`| -| 상품 가격 | product price | `상품`의 판매 가격 (0원 이상)| -| 상품 이름 | product name | `상품`의 고유한 이름 (비속어 포함 불가)| -| 상품 목록 | product list |등록된 `상품`들의 전체 목록| -| 상품 등록 | create product |새로운 `상품`을 등록하는 기능| -| 상품 가격 변경 | change product price |기존 `상품`의 가격을 수정하는 기능| -| 상품 목록 조회 | find product list |등록된 `상품` 목록을 조회하는 기능| +| 한글 명 | 영문 명 | 설명 +|-------------|----------------------|----------- +| 상품 | product | 판매할 수 있는 개별 `상품`| +| 상품 가격 | product price | `상품`의 가격을 설정하는 기능| +| 상품 이름 | product name | `상품`의 고유한 이름| +| 상품 목록 | product list |등록된 `상품`들의 전체 목록| +| 상품 등록하기 | create product |새로운 `상품`을 등록하는 기능| +| 상품 가격 변경하기 | change product price |기존 `상품`의 가격을 수정하는 기능| +| 상품 목록 조회하기 | find product list |등록된 상품 목록을 조회하는 기능| ### 메뉴 그룹 (menu group) -| 한글명 | 영문명 | 설명 | -|-------------|----------------------|-----------------------| -| 메뉴 그룹 | menu group | 메뉴를 분류하는 그룹 | -| 메뉴 그룹 명 | menu group name | `메뉴 그룹`의 이름 | -| 메뉴 그룹 목록 | menu group list | 등록된 `메뉴 그룹`들의 전체 목록 | -| 메뉴 그룹 목록 조회 | find menu group list | 등록된 `메뉴 그룹` 목록을 조회하는 기능 | -| 메뉴 그룹 등록 | create menu group | 새로운 `메뉴 그룹`을 등록하는 기능 | +| 한글명 | 영문명 | 설명 | +|---------------|----------------------|---------------------| +| 메뉴 그룹 | menu group | 메뉴를 분류하는 그룹 | +| 메뉴 그룹 명 | menu group name | `메뉴 그룹`의 이름 | +| 메뉴 그룹 목록 | menu group list | 등록된 `메뉴 그룹`들의 전체 목록 | +| 메뉴 그룹 목록 조회하기 | find menu group list | 등록된 `메뉴 그룹` 목록을 조회하는 기능 | +| 메뉴 그룹 등록하기 | create menu group | 새로운 `메뉴 그룹`을 등록하는 기능 | ### 메뉴 (menu) -| 한글명 | 영문명 | 설명 | -|----------|-------------------|--------------------------| -| 메뉴 | menu | 하나 이상의 상품으로 구성된 주문 가능한 항목 | -| 메뉴 상품 | menu proudct | `메뉴`에 포함된 개별 상품 | -| 메뉴 가격 | menu price | `메뉴`의 판매 가격 (0원 이상) | -| 메뉴 이름 | menu name | `메뉴`의 고유한 이름 (비속어 포함 불가) | -| 메뉴 목록 | menu list | 등록된 `메뉴`들의 전체 목록 | -| 메뉴 등록 | create menu | 새로운 `메뉴`를 등록하는 기능 | -| 메뉴 목록 조회 | find menu list | 등록된 `메뉴` 목록을 조회하는 기능 | -| 메뉴 가격 변경 | change menu price | 기존 `메뉴`의 가격을 수정하는 기능 | -| 메뉴 노출 | display menu | 고객이 `메뉴`를 볼 수 있도록 설정하는 기능 | -| 메뉴 숨김 | hide menu | 고객이 `메뉴`를 볼 수 없도록 설정하는 기능 | +| 한글명 | 영문명 | 설명 | +|------------|-------------------|--------------------------| +| 메뉴 | menu | 하나 이상의 상품으로 구성된 주문 가능한 항목 | +| 메뉴 상품 | menu proudct | `메뉴`에 포함된 개별 상품 | +| 메뉴 가격 | menu price | `메뉴`의 판매 가격 (0원 이상) | +| 메뉴 이름 | menu name | `메뉴`의 고유한 이름 (비속어 포함 불가) | +| 메뉴 목록 | menu list | 등록된 `메뉴`들의 전체 목록 | +| 메뉴 등록 | create menu | 새로운 `메뉴`를 등록하는 기능 | +| 메뉴 목록 조회하기 | find menu list | 등록된 `메뉴` 목록을 조회하는 기능 | +| 메뉴 가격 변경하기 | change menu price | 기존 `메뉴`의 가격을 수정하는 기능 | +| 메뉴 노출하기 | display menu | 고객이 `메뉴`를 볼 수 있도록 설정하는 기능 | +| 메뉴 숨기기 | hide menu | 고객이 `메뉴`를 볼 수 없도록 설정하는 기능 | ### 주문 테이블 (order table) -| 한글명 | 영문명 | 설명 | -|--------------|-------------------------|-------------------------------| -| 주문 테이블 | order table | 매장 내에서 고객이 식사하는 `테이블`| -| 주문 테이블 이름 | order table name | `주문 테이블`의 고유한 이름 (비워 둘 수 없음)| -| 방문 손님 수 | number of guests | `주문 테이블`에 앉은 손님 수 (0 이상)| -| 주문 테이블 목록 | order table list | 등록된 `주문 테이블`들의 전체 목록| -| 주문 테이블 등록 | create order table | 새로운 `주문 테이블`을 등록하는 기능| -| 빈 테이블 해지 | sit order table | 빈 `테이블`을 해지하는 기능 (손님이 테이블에 앉은 상태)| -| 빈 테이블 설정 | clear order table | 빈 `테이블`로 설정하는 기능 (손님이 테이블에 없는 상태)| -| 방문 손님 수 변경 | change number of guests | `주문 테이`블의 방문한 손님 수를 수정하는 기능| -| 주문 테이블 목록 조회 | find order table list | 등록된 `주문 테이블` 목록을 조회하는 기능| +| 한글명 | 영문명 | 설명 | +|----------------|-------------------------|-------------------------------| +| 주문 테이블 | order table | 매장 내에서 고객이 식사하는 `테이블`| +| 주문 테이블 이름 | order table name | `주문 테이블`의 고유한 이름 (비워 둘 수 없음)| +| 방문 손님 수 | number of guests | `주문 테이블`에 앉은 손님 수 (0 이상)| +| 주문 테이블 목록 | order table list | 등록된 `주문 테이블`들의 전체 목록| +| 주문 테이블 등록하기 | create order table | 새로운 `주문 테이블`을 등록하는 기능| +| 빈 테이블 해지하기 | sit order table | 빈 `테이블`을 해지하는 기능 (손님이 테이블에 앉은 상태)| +| 빈 테이블 설정 하기 | clear order table | 빈 `테이블`로 설정하는 기능 (손님이 테이블에 없는 상태)| +| 방문 손님 수 변경하기 | change number of guests | `주문 테이`블의 방문한 손님 수를 수정하는 기능| +| 주문 테이블 목록 조회하기 | find order table list | 등록된 `주문 테이블` 목록을 조회하는 기능| + ### 주문 (order) -| 한글명 | 영문명 | 설명 | -|----------|-----------------|-------------------------------------| -| 주문 | order | 하나 이상의 메뉴 목록| -| 주문 타입 | order type | 주문의 방식 (배달, 포장, 매장 주문)| -| 주문 상태 | order status | 주문의 진행 상태 (대기, 수락됨, 제공됨, 배달 중, 배달 완료, 완료) | -| 주문 목록 | order list | 등록된 주문들의 전체 목록 | -| 주문 목록 조회 | find order list | 등록된 주문 목록을 조회하는 기능| -| 배달 주문 | delivery order | `배달대행사(라이더)`에게 메뉴를 제공받기위한 `주문 유형` 중 하나 | -| 포장 주문 | takeout order | `고객이 직접 메뉴를 수령`하기위한 `주문 유형` 중의 하나 | -| 매장 주문 | table order | `먹고가기 (테이블 식사)`를 하기위한 `주문 유형` 중 하나 | -| 주문 항목 | order item | 고객이 메뉴를 선택 후 `주문`한 내역 | -| 배달 대행사 | delivery agency | 배달 대행 업체 | -| 배달 대행사 호출 | call delivery agency | 배달 대행 업체의 라이더 호출 | -| 배달 주소 | delivery address | 라이더가 배달 해야될 고객의 `배달지 주소` | - - -### 주문 유형 (order type) -| 한글명 | 영문명 | 설명 | -|------|----------|----------------------| -| 배달 | DELIVERY | `배달(배달대행사 호출)`로 주문한 경우 | -| 포장 | TAKEOUT | `포장`으로 주문할 경우 | -| 먹고가기 | EAT_IN | `먹고가기(매장주문)` 주문할 경우 | - -### 주문 상태 (order status) - -| 한글명 | 영문명 | 설명 | -|-------|------------|------------------------| -| 대기 | WAITING | 주문 요청상태 (주문 등록 후 대기상태) | -| 수락 | ACCEPTED | 주문 요청 후 수락상태 | -| 서빙/제공 | SERVED | 주문 수락 후 서빙/제공완료 상태 | -| 배달 | DELIVERING | 서빙/제공완료 후 배달중 상태 | -| 배달완료 | DELIVERED | 배달중 이후 배달완료 상태 | -| 주문완료 | COMPLETED | 주문 완료 상태 | +| 한글명 | 영문명 | 설명 | +|-------------|-----------------|-------------------------------------------| +| 주문 | order | 손님이 하나 이상의 메뉴 목록을 제공받기 위해 요청하는 것 | +| 주문 타입 | order type | 주문의 방식 (배달, 포장, 매장 주문) | +| 주문 상태 | order status | 주문의 진행 상태 (대기, 수락됨, 제공됨, 배달 중, 배달 완료, 완료) | +| 주문 목록 | order list | 등록된 주문들의 전체 목록 | +| 주문 목록 조회하기 | find order list | 등록된 주문 목록을 조회하는 기능 | +| 주문 항목 | order item | 고객이 메뉴를 선택 후 `주문`한 내역 | + + +### 배달 주문 (delivery) +| 한글명 | 영문명 | 설명 | +|-------------|-----------------|-------------------------------------------| +| 배달 | delivery | `배달(배달대행사 호출)`로 주문한 경우 | +| 배달 주문 | delivery order | `배달대행사(라이더)`에게 메뉴를 제공받기위한 `주문 유형` 중 하나 | +| 배달 대행사 | delivery agency | 배달 대행 업체 | +| 배달 대행사 호출하기 | call delivery agency | 배달 대행 업체의 라이더 호출 | +| 배달 주소 | delivery address | 라이더가 배달 해야될 고객의 `배달지 주소` | +| 배달 중 | delivering | 서빙/제공완료 후 배달중 상태 | +| 배달완료 | delivered | 배달중 이후 배달완료 상태 | + + +### 포장 주문 (take out) +| 한글명 | 영문명 | 설명 | +|-------------|----------------|-------------------------------------------| +| 포장 | take out | `포장`으로 주문할 경우 | +| 포장 주문 | take out order | `고객이 직접 메뉴를 수령`하기위한 `주문 유형` 중의 하나 | + +### 먹고 가기 (eat in) +| 한글명 | 영문명 | 설명 | +|-------------|-----------------|-------------------------------------------| +| 매장 주문 | table order | `먹고가기`를 하기위한 `주문 유형` 중 하나 | +| 먹고가기 | eat in | `매장 식사`로 주문할 경우 | +| 대기 | waiting | 주문 요청상태 (주문 등록 후 대기상태) | +| 수락 | accepted | 주문 요청 후 수락상태 | +| 서빙/제공 | served | 주문 수락 후 서빙/제공완료 상태 | ## 모델링 From 827a45be97892ed92dcfc45ec0d24b2fee3d7e3f Mon Sep 17 00:00:00 2001 From: hongsumin <> Date: Tue, 11 Feb 2025 22:55:00 +0900 Subject: [PATCH 05/10] =?UTF-8?q?docs=20(kitchenpos)=20:=20=EB=AA=A8?= =?UTF-8?q?=EB=8D=B8=EB=A7=81,=20=EC=8B=9C=EC=BB=A8=EC=8A=A4=20=EB=8B=A4?= =?UTF-8?q?=EC=9D=B4=EC=96=B4=EA=B7=B8=EB=9E=A8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 143 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d7beb3d65..5d11cdf67 100644 --- a/README.md +++ b/README.md @@ -141,8 +141,8 @@ docker compose -p kitchenpos up -d | 방문 손님 수 | number of guests | `주문 테이블`에 앉은 손님 수 (0 이상)| | 주문 테이블 목록 | order table list | 등록된 `주문 테이블`들의 전체 목록| | 주문 테이블 등록하기 | create order table | 새로운 `주문 테이블`을 등록하는 기능| -| 빈 테이블 해지하기 | sit order table | 빈 `테이블`을 해지하는 기능 (손님이 테이블에 앉은 상태)| -| 빈 테이블 설정 하기 | clear order table | 빈 `테이블`로 설정하는 기능 (손님이 테이블에 없는 상태)| +| 빈 테이블에 앉기 | sit order table | 빈 `테이블`을 해지하는 기능 (손님이 테이블에 앉은 상태)| +| 주문 테이블 치우기 | clear order table | 빈 `테이블`로 설정하는 기능 (손님이 테이블에 없는 상태)| | 방문 손님 수 변경하기 | change number of guests | `주문 테이`블의 방문한 손님 수를 수정하는 기능| | 주문 테이블 목록 조회하기 | find order table list | 등록된 `주문 테이블` 목록을 조회하는 기능| @@ -187,3 +187,144 @@ docker compose -p kitchenpos up -d ## 모델링 + +## `상품 (product)` +- `상품(product)`은 `상품 가격(product price)`, `상품 이름(product name)`을 가진다. +- `상품 가격(product price)`은 0원 이상이어야 한다. +- `상품 이름(product name)`에는 비속어가 포함될 수 없다. +- `상품 목록(find product list)`을 조회할 수 있다. + +### `상품 등록하기(create product)` 정책 +- `상품 가격(product price)`이 0원 이상이고, `상품 이름(product name)`에 비속어가 포함되지 않은 경우 상품(product)을 등록할 수 있다. + +### `상품 가격 변경하기(change product price)` 정책 +- `상품 가격(product price)`이 0원 이상인 경우에만 변경할 수 있다. +- 가격 변경 후 `메뉴 가격(menu price)`이 `메뉴 상품(menu product)` 금액의 합보다 높으면 `메뉴(menu)`가 숨겨진다. + +--- + +## `메뉴 그룹 (menu group)` +- `메뉴 그룹(menu group)`은 여러 개의 `메뉴(menu)`를 포함한다. +- `메뉴 그룹 목록(find menu group list)`을 조회할 수 있다. + +### `메뉴 그룹 등록하기(create menu group)` 정책 +- `메뉴 그룹 이름(menu group name)`이 비어 있지 않은 경우 `메뉴 그룹(menu group)`을 등록할 수 있다. + +--- + +## `메뉴 (menu)` +- `메뉴(menu)`는 `메뉴 가격(menu price)`, `메뉴 상품(menu product)`, `메뉴 그룹(menu group)`, `메뉴 노출 상태(display menu)`를 가진다. +- `메뉴 가격(menu price)`은 0원 이상이어야 한다. +- `메뉴 목록(find menu list)`을 조회할 수 있다. + +### `메뉴 등록하기(create menu)` 정책 +- 하나 이상의 `상품(product)`이 포함된 경우에만 `메뉴(menu)`를 등록할 수 있다. +- `메뉴 가격(menu price)`이 `메뉴 상품(menu product)` 가격 합보다 크거나 같아야 등록이 가능하다. + +### `메뉴 가격 변경하기(change menu price)` 정책 +- `메뉴 가격(menu price)`이 0원 이상인 경우에만 변경할 수 있다. +- 변경된 가격이 `메뉴 상품(menu product)` 가격 합보다 크지 않아야 한다. + +### `메뉴 노출하기(display menu)` 정책 +- `메뉴 가격(menu price)`이 `메뉴 상품(menu product)` 가격 합보다 높은 경우 `메뉴(menu)`가 숨겨진다. +- `메뉴(menu)`를 고객이 볼 수 있도록 설정할 수 있다. + +### `메뉴 숨기기(hide menu)` 정책 +- `메뉴(menu)`를 고객이 볼 수 없도록 설정할 수 있다. + +--- + +## `주문 테이블 (order table)` +- `주문 테이블(order table)`은 `주문 테이블 상태(order table status)`, `방문 손님 수(number of guests)`를 가진다. +- `방문 손님 수(number of guests)`는 0 이상이어야 한다. +- `주문 테이블 목록(find order table list)`을 조회할 수 있다. + +### `주문 테이블 등록하기(create order table)` 정책 +- `주문 테이블 이름(order table name)`이 비어 있지 않은 경우 `주문 테이블(order table)`을 등록할 수 있다. + +### `빈 테이블에 앉기(sit order table)` 정책 +- `주문 테이블(order table)`을 사용 중 상태로 변경할 수 있다. + +### `주문 테이블 치우기(clear order table)` 정책 +- 완료되지 않은 `주문(order)`이 있는 경우 `주문 테이블 치우기(clear order table)`로 설정할 수 없다. + +### `방문 손님 수 변경하기(change number of guests)` 정책 +- `방문 손님 수(number of guests)`가 0 이상인 경우에만 변경할 수 있다. + +--- + +## `주문 (order)` +- `주문(order)`은 `주문 유형(order type)`, `주문 상태(order status)`, `주문 항목(order item)`을 가진다. +- `주문 목록(find order list)`을 조회할 수 있다. + +### `주문 등록(create order)`하기 정책 +- 하나 이상의 `메뉴(menu)`가 포함된 경우에만 `주문(order)`을 등록할 수 있다. +- `숨겨진 메뉴(hide menu)`를 주문할 수 없다. + +### 주문 상태 (order status) 변경 정책 +- `대기(waiting)` 상태의 주문만 `주문 수락(accepted)`할 수 있다. +- `주문 수락(accepted)`된 주문만 `주문 제공(served)`할 수 있다. +- `주문 제공(served)`된 주문만 `배달 중(delivering)`으로 변경할 수 있다. +- `배달 중(delivering)`인 주문만 `배달 완료(delivered)`할 수 있다. +- `배달 완료(delivered)`된 주문만 `주문 완료(completed)`할 수 있다. +- `포장 주문(take out order)` 및 `매장 주문(table order)`의 경우 `주문 제공(served)`된 주문만 `주문 완료(completed)`할 수 있다. + +--- + +## `주문 유형 (order type)` + +### `배달 주문 (delivery order)` +- `배달 주문(delivery order)`은 `배달 주소(delivery address)`를 가진다. +- `배달 대행사 호출하기(call delivery agency)`를 통해 배달을 요청할 수 있다. +- `배달 주소(delivery address)`는 비워 둘 수 없다. + +### `포장 주문 (takeout order)` + +### `매장 주문 (table order)` +- `매장 주문(table order)`은 `주문 테이블(order table)`을 가진다. +- `주문 테이블 상태(order table status)`가 사용 중이어야 한다. + + + + +```mermaid +sequenceDiagram + participant 직원 as 직원 + participant 상품 as 상품 + + 직원->>+상품: 상품 등록 요청 (상품 이름, 가격) + 상품->>상품: 상품 이름 검증 (비속어 포함 여부) + 상품->>상품: 상품 가격 검증 (0원 이상) + + alt 상품 이름이 비속어 포함 또는 가격이 0원 미만 + 상품-->>직원: 상품 등록 실패 (잘못된 입력) + else + 상품->>+상품: 상품 정보 저장 + 상품-->>직원: 상품 등록 완료 + end +``` +------------ +```mermaid +sequenceDiagram + participant 고객 as 고객 + participant 주문 as 주문 + participant 직원 as 직원 + participant 배달대행 as 배달 대행사 + + 고객->>+주문: 주문 요청 (메뉴 선택, 배달/포장/매장) + 주문-->>고객: 주문 대기 상태 + + 직원->>+주문: 주문 수락 (accepted) + 주문-->>고객: 주문 수락 + + 직원->>+주문: 주문 제공 (served) + 주문-->>고객: 주문 제공 + + 주문-->>배달대행: 배달 요청 + 배달대행-->>주문: 배달 중 (delivering) + 배달대행->>+주문: 배달 완료 (delivered) + 주문-->>고객: 주문 배달 완료 + + 고객->>+주문: 주문 완료 + 주문-->>고객: 주문 완료 + ``` From 87c895c609c4c01d7ba53e6dcae301cd5480d4ce Mon Sep 17 00:00:00 2001 From: hongsumin <> Date: Sat, 15 Feb 2025 11:06:49 +0900 Subject: [PATCH 06/10] =?UTF-8?q?docs=20(kitchenpos)=20:=20=EB=A6=AC?= =?UTF-8?q?=EB=B7=B0=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 56 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 5d11cdf67..091c31a41 100644 --- a/README.md +++ b/README.md @@ -134,17 +134,18 @@ docker compose -p kitchenpos up -d ### 주문 테이블 (order table) -| 한글명 | 영문명 | 설명 | -|----------------|-------------------------|-------------------------------| -| 주문 테이블 | order table | 매장 내에서 고객이 식사하는 `테이블`| -| 주문 테이블 이름 | order table name | `주문 테이블`의 고유한 이름 (비워 둘 수 없음)| -| 방문 손님 수 | number of guests | `주문 테이블`에 앉은 손님 수 (0 이상)| -| 주문 테이블 목록 | order table list | 등록된 `주문 테이블`들의 전체 목록| -| 주문 테이블 등록하기 | create order table | 새로운 `주문 테이블`을 등록하는 기능| -| 빈 테이블에 앉기 | sit order table | 빈 `테이블`을 해지하는 기능 (손님이 테이블에 앉은 상태)| -| 주문 테이블 치우기 | clear order table | 빈 `테이블`로 설정하는 기능 (손님이 테이블에 없는 상태)| -| 방문 손님 수 변경하기 | change number of guests | `주문 테이`블의 방문한 손님 수를 수정하는 기능| -| 주문 테이블 목록 조회하기 | find order table list | 등록된 `주문 테이블` 목록을 조회하는 기능| +| 한글명 | 영문명 | 설명 | +|----------------|-------------------------|------------------------------------| +| 주문 테이블 | order table | 매장 내에서 고객이 식사하는 `테이블` | +| 주문 테이블 이름 | order table name | `주문 테이블`의 고유한 이름 (비워 둘 수 없음) | +| 주문 테이블 상태 | order table status | `주문 테이블`이 빈 상태인지, 손님이 채워진 상태인지의 여부 | +| 방문 손님 수 | number of guests | `주문 테이블`에 앉은 손님 수 (0 이상) | +| 주문 테이블 목록 | order table list | 등록된 `주문 테이블`들의 전체 목록 | +| 주문 테이블 등록하기 | create order table | 새로운 `주문 테이블`을 등록하는 기능 | +| 빈 테이블에 앉기 | sit order table | 빈 `테이블`을 해지하는 기능 (손님이 테이블에 앉은 상태) | +| 주문 테이블 치우기 | clear order table | 빈 `테이블`로 설정하는 기능 (손님이 테이블에 없는 상태) | +| 방문 손님 수 변경하기 | change number of guests | `주문 테이`블의 방문한 손님 수를 수정하는 기능 | +| 주문 테이블 목록 조회하기 | find order table list | 등록된 `주문 테이블` 목록을 조회하는 기능 | ### 주문 (order) @@ -245,8 +246,8 @@ docker compose -p kitchenpos up -d ### `빈 테이블에 앉기(sit order table)` 정책 - `주문 테이블(order table)`을 사용 중 상태로 변경할 수 있다. -### `주문 테이블 치우기(clear order table)` 정책 -- 완료되지 않은 `주문(order)`이 있는 경우 `주문 테이블 치우기(clear order table)`로 설정할 수 없다. +### `주문 테이블 빈 상태로 설정하기(clear order table)` 정책 +- 완료되지 않은 `주문(order)`이 있는 경우 `주문 테이블 빈 상태로 설정하기(clear order table)`로 설정할 수 없다. ### `방문 손님 수 변경하기(change number of guests)` 정책 - `방문 손님 수(number of guests)`가 0 이상인 경우에만 변경할 수 있다. @@ -258,31 +259,36 @@ docker compose -p kitchenpos up -d - `주문 목록(find order list)`을 조회할 수 있다. ### `주문 등록(create order)`하기 정책 -- 하나 이상의 `메뉴(menu)`가 포함된 경우에만 `주문(order)`을 등록할 수 있다. +- 하나 이상의 `주문 항목 (order item)`가 포함된 경우에만 `주문(order)`을 등록할 수 있다. - `숨겨진 메뉴(hide menu)`를 주문할 수 없다. ### 주문 상태 (order status) 변경 정책 -- `대기(waiting)` 상태의 주문만 `주문 수락(accepted)`할 수 있다. -- `주문 수락(accepted)`된 주문만 `주문 제공(served)`할 수 있다. -- `주문 제공(served)`된 주문만 `배달 중(delivering)`으로 변경할 수 있다. -- `배달 중(delivering)`인 주문만 `배달 완료(delivered)`할 수 있다. -- `배달 완료(delivered)`된 주문만 `주문 완료(completed)`할 수 있다. -- `포장 주문(take out order)` 및 `매장 주문(table order)`의 경우 `주문 제공(served)`된 주문만 `주문 완료(completed)`할 수 있다. +- 주문이 접수되면, `대기(waiting)` 상태가 된다. +- 직원은 `대기(waiting)` 상태의 주문을 `주문 수락(accepted)`할 수 있다. +- 직원은 `주문 수락(accepted)` 상태 주무을 `주문 제공(served)`할 수 있다. +- 직원은 `주문 제공(served)`상태 주문을 `배달 중(delivering)`으로 변경할 수 있다. +- `배달 중(delivering)`상태인 주문을 `배달 완료(delivered)`상태로 변경할 수 있다. +- `배달 완료(delivered)` 된 주문을 `주문 완료(completed)` 할 수 있다. +- `주문 제공(served)` 된 주문을 `주문 완료(completed)` 할 수 있다. --- ## `주문 유형 (order type)` ### `배달 주문 (delivery order)` -- `배달 주문(delivery order)`은 `배달 주소(delivery address)`를 가진다. -- `배달 대행사 호출하기(call delivery agency)`를 통해 배달을 요청할 수 있다. -- `배달 주소(delivery address)`는 비워 둘 수 없다. +- 속성 + - 주문 유형(order type), 주문 상태(order status), 주문 항목(order item), 배달 주소(delivery address)를 가진다. + - `배달 주소(delivery address)`는 비워 둘 수 없다. + +- 기능 + - `배달 대행사 호출하기(call delivery agency)`를 통해 배달을 요청할 수 있다. ### `포장 주문 (takeout order)` ### `매장 주문 (table order)` -- `매장 주문(table order)`은 `주문 테이블(order table)`을 가진다. -- `주문 테이블 상태(order table status)`가 사용 중이어야 한다. +- 속성 + - `매장 주문(table order)`은 `주문 테이블(order table)`을 가진다. + - `주문 테이블 상태(order table status)`가 사용 중이어야 한다. From 33891add833f88783c39e954051264ced80e0aef Mon Sep 17 00:00:00 2001 From: hongsumin <> Date: Sat, 15 Feb 2025 22:24:04 +0900 Subject: [PATCH 07/10] =?UTF-8?q?docs=20(kitchenpos)=20:=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=9A=B0=EC=84=A0=20=ED=8C=A8=ED=82=A4=EC=A7=80=20?= =?UTF-8?q?=EA=B5=AC=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infra/DefaultKitchenridersClient.java | 2 +- .../infra/DefaultPurgomalumClient.java | 2 +- .../infra/KitchenridersClient.java | 2 +- .../{ => global}/infra/PurgomalumClient.java | 2 +- .../{ => menu}/application/MenuService.java | 18 +++++++-------- .../kitchenpos/{ => menu}/domain/Menu.java | 3 ++- .../{ => menu}/domain/MenuProduct.java | 3 ++- .../infra}/JpaMenuRepository.java | 3 ++- .../infra}/MenuRepository.java | 4 +++- .../{ => menu}/ui/MenuRestController.java | 6 ++--- .../application/MenuGroupService.java | 6 ++--- .../{ => menugroup}/domain/MenuGroup.java | 2 +- .../infra}/JpaMenuGroupRepository.java | 4 +++- .../infra}/MenuGroupRepository.java | 4 +++- .../ui/MenuGroupRestController.java | 6 ++--- .../{ => order}/application/OrderService.java | 22 +++++++++---------- .../kitchenpos/{ => order}/domain/Order.java | 3 ++- .../{ => order}/domain/OrderLineItem.java | 3 ++- .../{ => order}/domain/OrderStatus.java | 2 +- .../{ => order}/domain/OrderType.java | 2 +- .../infra}/JpaOrderRepository.java | 4 +++- .../infra}/OrderRepository.java | 6 ++++- .../{ => order}/ui/OrderRestController.java | 6 ++--- .../application/OrderTableService.java | 10 ++++----- .../{ => ordertable}/domain/OrderTable.java | 2 +- .../infra}/JpaOrderTableRepository.java | 3 ++- .../infra}/OrderTableRepository.java | 4 +++- .../ui/OrderTableRestController.java | 6 ++--- .../application/ProductService.java | 14 ++++++------ .../{ => product}/domain/Product.java | 2 +- .../infra}/JpaProductRepository.java | 3 ++- .../infra}/ProductRepository.java | 4 +++- .../ui/ProductRestController.java | 6 ++--- src/test/java/kitchenpos/Fixtures.java | 18 +++++++-------- .../application/FakeKitchenridersClient.java | 2 +- .../application/FakePurgomalumClient.java | 2 +- .../InMemoryMenuGroupRepository.java | 4 ++-- .../application/InMemoryMenuRepository.java | 4 ++-- .../application/InMemoryOrderRepository.java | 8 +++---- .../InMemoryOrderTableRepository.java | 4 ++-- .../InMemoryProductRepository.java | 4 ++-- .../application/MenuGroupServiceTest.java | 5 +++-- .../application/MenuServiceTest.java | 15 +++++++------ .../application/OrderServiceTest.java | 17 +++++++------- .../application/OrderTableServiceTest.java | 9 ++++---- .../application/ProductServiceTest.java | 11 +++++----- 46 files changed, 150 insertions(+), 122 deletions(-) rename src/main/java/kitchenpos/{ => global}/infra/DefaultKitchenridersClient.java (90%) rename src/main/java/kitchenpos/{ => global}/infra/DefaultPurgomalumClient.java (96%) rename src/main/java/kitchenpos/{ => global}/infra/KitchenridersClient.java (84%) rename src/main/java/kitchenpos/{ => global}/infra/PurgomalumClient.java (71%) rename src/main/java/kitchenpos/{ => menu}/application/MenuService.java (92%) rename src/main/java/kitchenpos/{ => menu}/domain/Menu.java (97%) rename src/main/java/kitchenpos/{ => menu}/domain/MenuProduct.java (95%) rename src/main/java/kitchenpos/{domain => menu/infra}/JpaMenuRepository.java (87%) rename src/main/java/kitchenpos/{domain => menu/infra}/MenuRepository.java (81%) rename src/main/java/kitchenpos/{ => menu}/ui/MenuRestController.java (94%) rename src/main/java/kitchenpos/{ => menugroup}/application/MenuGroupService.java (87%) rename src/main/java/kitchenpos/{ => menugroup}/domain/MenuGroup.java (94%) rename src/main/java/kitchenpos/{domain => menugroup/infra}/JpaMenuGroupRepository.java (58%) rename src/main/java/kitchenpos/{domain => menugroup/infra}/MenuGroupRepository.java (73%) rename src/main/java/kitchenpos/{ => menugroup}/ui/MenuGroupRestController.java (89%) rename src/main/java/kitchenpos/{ => order}/application/OrderService.java (93%) rename src/main/java/kitchenpos/{ => order}/domain/Order.java (97%) rename src/main/java/kitchenpos/{ => order}/domain/OrderLineItem.java (96%) rename src/main/java/kitchenpos/{ => order}/domain/OrderStatus.java (73%) rename src/main/java/kitchenpos/{ => order}/domain/OrderType.java (63%) rename src/main/java/kitchenpos/{domain => order/infra}/JpaOrderRepository.java (60%) rename src/main/java/kitchenpos/{domain => order/infra}/OrderRepository.java (64%) rename src/main/java/kitchenpos/{ => order}/ui/OrderRestController.java (94%) rename src/main/java/kitchenpos/{ => ordertable}/application/OrderTableService.java (91%) rename src/main/java/kitchenpos/{ => ordertable}/domain/OrderTable.java (96%) rename src/main/java/kitchenpos/{domain => ordertable/infra}/JpaOrderTableRepository.java (69%) rename src/main/java/kitchenpos/{domain => ordertable/infra}/OrderTableRepository.java (73%) rename src/main/java/kitchenpos/{ => ordertable}/ui/OrderTableRestController.java (93%) rename src/main/java/kitchenpos/{ => product}/application/ProductService.java (89%) rename src/main/java/kitchenpos/{ => product}/domain/Product.java (96%) rename src/main/java/kitchenpos/{domain => product/infra}/JpaProductRepository.java (70%) rename src/main/java/kitchenpos/{domain => product/infra}/ProductRepository.java (77%) rename src/main/java/kitchenpos/{ => product}/ui/ProductRestController.java (92%) diff --git a/src/main/java/kitchenpos/infra/DefaultKitchenridersClient.java b/src/main/java/kitchenpos/global/infra/DefaultKitchenridersClient.java similarity index 90% rename from src/main/java/kitchenpos/infra/DefaultKitchenridersClient.java rename to src/main/java/kitchenpos/global/infra/DefaultKitchenridersClient.java index 7ad5d36b9..13665b3c5 100644 --- a/src/main/java/kitchenpos/infra/DefaultKitchenridersClient.java +++ b/src/main/java/kitchenpos/global/infra/DefaultKitchenridersClient.java @@ -1,4 +1,4 @@ -package kitchenpos.infra; +package kitchenpos.global.infra; import org.springframework.stereotype.Component; diff --git a/src/main/java/kitchenpos/infra/DefaultPurgomalumClient.java b/src/main/java/kitchenpos/global/infra/DefaultPurgomalumClient.java similarity index 96% rename from src/main/java/kitchenpos/infra/DefaultPurgomalumClient.java rename to src/main/java/kitchenpos/global/infra/DefaultPurgomalumClient.java index 4ad99bc6b..d608c7c2a 100644 --- a/src/main/java/kitchenpos/infra/DefaultPurgomalumClient.java +++ b/src/main/java/kitchenpos/global/infra/DefaultPurgomalumClient.java @@ -1,4 +1,4 @@ -package kitchenpos.infra; +package kitchenpos.global.infra; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.stereotype.Component; diff --git a/src/main/java/kitchenpos/infra/KitchenridersClient.java b/src/main/java/kitchenpos/global/infra/KitchenridersClient.java similarity index 84% rename from src/main/java/kitchenpos/infra/KitchenridersClient.java rename to src/main/java/kitchenpos/global/infra/KitchenridersClient.java index 2a296dfb0..561faa41d 100644 --- a/src/main/java/kitchenpos/infra/KitchenridersClient.java +++ b/src/main/java/kitchenpos/global/infra/KitchenridersClient.java @@ -1,4 +1,4 @@ -package kitchenpos.infra; +package kitchenpos.global.infra; import java.math.BigDecimal; import java.util.UUID; diff --git a/src/main/java/kitchenpos/infra/PurgomalumClient.java b/src/main/java/kitchenpos/global/infra/PurgomalumClient.java similarity index 71% rename from src/main/java/kitchenpos/infra/PurgomalumClient.java rename to src/main/java/kitchenpos/global/infra/PurgomalumClient.java index e5c449b80..bf6852592 100644 --- a/src/main/java/kitchenpos/infra/PurgomalumClient.java +++ b/src/main/java/kitchenpos/global/infra/PurgomalumClient.java @@ -1,4 +1,4 @@ -package kitchenpos.infra; +package kitchenpos.global.infra; public interface PurgomalumClient { boolean containsProfanity(String text); diff --git a/src/main/java/kitchenpos/application/MenuService.java b/src/main/java/kitchenpos/menu/application/MenuService.java similarity index 92% rename from src/main/java/kitchenpos/application/MenuService.java rename to src/main/java/kitchenpos/menu/application/MenuService.java index 7bd0401ff..9fe13931a 100644 --- a/src/main/java/kitchenpos/application/MenuService.java +++ b/src/main/java/kitchenpos/menu/application/MenuService.java @@ -1,13 +1,13 @@ -package kitchenpos.application; +package kitchenpos.menu.application; -import kitchenpos.domain.Menu; -import kitchenpos.domain.MenuGroup; -import kitchenpos.domain.MenuGroupRepository; -import kitchenpos.domain.MenuProduct; -import kitchenpos.domain.MenuRepository; -import kitchenpos.domain.Product; -import kitchenpos.domain.ProductRepository; -import kitchenpos.infra.PurgomalumClient; +import kitchenpos.menu.domain.Menu; +import kitchenpos.menugroup.domain.MenuGroup; +import kitchenpos.menugroup.infra.MenuGroupRepository; +import kitchenpos.menu.domain.MenuProduct; +import kitchenpos.menu.infra.MenuRepository; +import kitchenpos.product.domain.Product; +import kitchenpos.product.infra.ProductRepository; +import kitchenpos.global.infra.PurgomalumClient; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/kitchenpos/domain/Menu.java b/src/main/java/kitchenpos/menu/domain/Menu.java similarity index 97% rename from src/main/java/kitchenpos/domain/Menu.java rename to src/main/java/kitchenpos/menu/domain/Menu.java index 7803bde26..6c0fc48ca 100644 --- a/src/main/java/kitchenpos/domain/Menu.java +++ b/src/main/java/kitchenpos/menu/domain/Menu.java @@ -1,4 +1,4 @@ -package kitchenpos.domain; +package kitchenpos.menu.domain; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; @@ -10,6 +10,7 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Transient; +import kitchenpos.menugroup.domain.MenuGroup; import java.math.BigDecimal; import java.util.List; diff --git a/src/main/java/kitchenpos/domain/MenuProduct.java b/src/main/java/kitchenpos/menu/domain/MenuProduct.java similarity index 95% rename from src/main/java/kitchenpos/domain/MenuProduct.java rename to src/main/java/kitchenpos/menu/domain/MenuProduct.java index 19026056a..1d96b3e9d 100644 --- a/src/main/java/kitchenpos/domain/MenuProduct.java +++ b/src/main/java/kitchenpos/menu/domain/MenuProduct.java @@ -1,4 +1,4 @@ -package kitchenpos.domain; +package kitchenpos.menu.domain; import jakarta.persistence.Column; import jakarta.persistence.Entity; @@ -10,6 +10,7 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Transient; +import kitchenpos.product.domain.Product; import java.util.UUID; diff --git a/src/main/java/kitchenpos/domain/JpaMenuRepository.java b/src/main/java/kitchenpos/menu/infra/JpaMenuRepository.java similarity index 87% rename from src/main/java/kitchenpos/domain/JpaMenuRepository.java rename to src/main/java/kitchenpos/menu/infra/JpaMenuRepository.java index 2a8fa4fd2..8830e363c 100644 --- a/src/main/java/kitchenpos/domain/JpaMenuRepository.java +++ b/src/main/java/kitchenpos/menu/infra/JpaMenuRepository.java @@ -1,5 +1,6 @@ -package kitchenpos.domain; +package kitchenpos.menu.infra; +import kitchenpos.menu.domain.Menu; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; diff --git a/src/main/java/kitchenpos/domain/MenuRepository.java b/src/main/java/kitchenpos/menu/infra/MenuRepository.java similarity index 81% rename from src/main/java/kitchenpos/domain/MenuRepository.java rename to src/main/java/kitchenpos/menu/infra/MenuRepository.java index 6bd825029..fd8214c11 100644 --- a/src/main/java/kitchenpos/domain/MenuRepository.java +++ b/src/main/java/kitchenpos/menu/infra/MenuRepository.java @@ -1,4 +1,6 @@ -package kitchenpos.domain; +package kitchenpos.menu.infra; + +import kitchenpos.menu.domain.Menu; import java.util.List; import java.util.Optional; diff --git a/src/main/java/kitchenpos/ui/MenuRestController.java b/src/main/java/kitchenpos/menu/ui/MenuRestController.java similarity index 94% rename from src/main/java/kitchenpos/ui/MenuRestController.java rename to src/main/java/kitchenpos/menu/ui/MenuRestController.java index 999bf13b3..62d0408b8 100644 --- a/src/main/java/kitchenpos/ui/MenuRestController.java +++ b/src/main/java/kitchenpos/menu/ui/MenuRestController.java @@ -1,7 +1,7 @@ -package kitchenpos.ui; +package kitchenpos.menu.ui; -import kitchenpos.application.MenuService; -import kitchenpos.domain.Menu; +import kitchenpos.menu.application.MenuService; +import kitchenpos.menu.domain.Menu; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; diff --git a/src/main/java/kitchenpos/application/MenuGroupService.java b/src/main/java/kitchenpos/menugroup/application/MenuGroupService.java similarity index 87% rename from src/main/java/kitchenpos/application/MenuGroupService.java rename to src/main/java/kitchenpos/menugroup/application/MenuGroupService.java index 84add81f5..834a5ac8c 100644 --- a/src/main/java/kitchenpos/application/MenuGroupService.java +++ b/src/main/java/kitchenpos/menugroup/application/MenuGroupService.java @@ -1,7 +1,7 @@ -package kitchenpos.application; +package kitchenpos.menugroup.application; -import kitchenpos.domain.MenuGroup; -import kitchenpos.domain.MenuGroupRepository; +import kitchenpos.menugroup.domain.MenuGroup; +import kitchenpos.menugroup.infra.MenuGroupRepository; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/kitchenpos/domain/MenuGroup.java b/src/main/java/kitchenpos/menugroup/domain/MenuGroup.java similarity index 94% rename from src/main/java/kitchenpos/domain/MenuGroup.java rename to src/main/java/kitchenpos/menugroup/domain/MenuGroup.java index c7cd3c83d..37491b0c9 100644 --- a/src/main/java/kitchenpos/domain/MenuGroup.java +++ b/src/main/java/kitchenpos/menugroup/domain/MenuGroup.java @@ -1,4 +1,4 @@ -package kitchenpos.domain; +package kitchenpos.menugroup.domain; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/kitchenpos/domain/JpaMenuGroupRepository.java b/src/main/java/kitchenpos/menugroup/infra/JpaMenuGroupRepository.java similarity index 58% rename from src/main/java/kitchenpos/domain/JpaMenuGroupRepository.java rename to src/main/java/kitchenpos/menugroup/infra/JpaMenuGroupRepository.java index 9ee56b2b3..b0947cac6 100644 --- a/src/main/java/kitchenpos/domain/JpaMenuGroupRepository.java +++ b/src/main/java/kitchenpos/menugroup/infra/JpaMenuGroupRepository.java @@ -1,5 +1,7 @@ -package kitchenpos.domain; +package kitchenpos.menugroup.infra; +import kitchenpos.menugroup.domain.MenuGroup; +import kitchenpos.menugroup.infra.MenuGroupRepository; import org.springframework.data.jpa.repository.JpaRepository; import java.util.UUID; diff --git a/src/main/java/kitchenpos/domain/MenuGroupRepository.java b/src/main/java/kitchenpos/menugroup/infra/MenuGroupRepository.java similarity index 73% rename from src/main/java/kitchenpos/domain/MenuGroupRepository.java rename to src/main/java/kitchenpos/menugroup/infra/MenuGroupRepository.java index b5acec2f2..4f66575ee 100644 --- a/src/main/java/kitchenpos/domain/MenuGroupRepository.java +++ b/src/main/java/kitchenpos/menugroup/infra/MenuGroupRepository.java @@ -1,4 +1,6 @@ -package kitchenpos.domain; +package kitchenpos.menugroup.infra; + +import kitchenpos.menugroup.domain.MenuGroup; import java.util.List; import java.util.Optional; diff --git a/src/main/java/kitchenpos/ui/MenuGroupRestController.java b/src/main/java/kitchenpos/menugroup/ui/MenuGroupRestController.java similarity index 89% rename from src/main/java/kitchenpos/ui/MenuGroupRestController.java rename to src/main/java/kitchenpos/menugroup/ui/MenuGroupRestController.java index 532cdb625..971ec2f48 100644 --- a/src/main/java/kitchenpos/ui/MenuGroupRestController.java +++ b/src/main/java/kitchenpos/menugroup/ui/MenuGroupRestController.java @@ -1,7 +1,7 @@ -package kitchenpos.ui; +package kitchenpos.menugroup.ui; -import kitchenpos.application.MenuGroupService; -import kitchenpos.domain.MenuGroup; +import kitchenpos.menugroup.application.MenuGroupService; +import kitchenpos.menugroup.domain.MenuGroup; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; diff --git a/src/main/java/kitchenpos/application/OrderService.java b/src/main/java/kitchenpos/order/application/OrderService.java similarity index 93% rename from src/main/java/kitchenpos/application/OrderService.java rename to src/main/java/kitchenpos/order/application/OrderService.java index 6dbe53307..c681b27f9 100644 --- a/src/main/java/kitchenpos/application/OrderService.java +++ b/src/main/java/kitchenpos/order/application/OrderService.java @@ -1,15 +1,15 @@ -package kitchenpos.application; +package kitchenpos.order.application; -import kitchenpos.domain.Menu; -import kitchenpos.domain.MenuRepository; -import kitchenpos.domain.Order; -import kitchenpos.domain.OrderLineItem; -import kitchenpos.domain.OrderRepository; -import kitchenpos.domain.OrderStatus; -import kitchenpos.domain.OrderTable; -import kitchenpos.domain.OrderTableRepository; -import kitchenpos.domain.OrderType; -import kitchenpos.infra.KitchenridersClient; +import kitchenpos.menu.domain.Menu; +import kitchenpos.menu.infra.MenuRepository; +import kitchenpos.order.domain.Order; +import kitchenpos.order.domain.OrderLineItem; +import kitchenpos.order.infra.OrderRepository; +import kitchenpos.order.domain.OrderStatus; +import kitchenpos.ordertable.domain.OrderTable; +import kitchenpos.ordertable.infra.OrderTableRepository; +import kitchenpos.order.domain.OrderType; +import kitchenpos.global.infra.KitchenridersClient; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/kitchenpos/domain/Order.java b/src/main/java/kitchenpos/order/domain/Order.java similarity index 97% rename from src/main/java/kitchenpos/domain/Order.java rename to src/main/java/kitchenpos/order/domain/Order.java index b7d04ea95..f9a4686dc 100644 --- a/src/main/java/kitchenpos/domain/Order.java +++ b/src/main/java/kitchenpos/order/domain/Order.java @@ -1,4 +1,4 @@ -package kitchenpos.domain; +package kitchenpos.order.domain; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; @@ -12,6 +12,7 @@ import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import jakarta.persistence.Transient; +import kitchenpos.ordertable.domain.OrderTable; import java.time.LocalDateTime; import java.util.List; diff --git a/src/main/java/kitchenpos/domain/OrderLineItem.java b/src/main/java/kitchenpos/order/domain/OrderLineItem.java similarity index 96% rename from src/main/java/kitchenpos/domain/OrderLineItem.java rename to src/main/java/kitchenpos/order/domain/OrderLineItem.java index 6a660b9c8..59eb3cb59 100644 --- a/src/main/java/kitchenpos/domain/OrderLineItem.java +++ b/src/main/java/kitchenpos/order/domain/OrderLineItem.java @@ -1,4 +1,4 @@ -package kitchenpos.domain; +package kitchenpos.order.domain; import jakarta.persistence.Column; import jakarta.persistence.Entity; @@ -10,6 +10,7 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import jakarta.persistence.Transient; +import kitchenpos.menu.domain.Menu; import java.math.BigDecimal; import java.util.UUID; diff --git a/src/main/java/kitchenpos/domain/OrderStatus.java b/src/main/java/kitchenpos/order/domain/OrderStatus.java similarity index 73% rename from src/main/java/kitchenpos/domain/OrderStatus.java rename to src/main/java/kitchenpos/order/domain/OrderStatus.java index c738c8e1e..311d18f55 100644 --- a/src/main/java/kitchenpos/domain/OrderStatus.java +++ b/src/main/java/kitchenpos/order/domain/OrderStatus.java @@ -1,4 +1,4 @@ -package kitchenpos.domain; +package kitchenpos.order.domain; public enum OrderStatus { WAITING, ACCEPTED, SERVED, DELIVERING, DELIVERED, COMPLETED diff --git a/src/main/java/kitchenpos/domain/OrderType.java b/src/main/java/kitchenpos/order/domain/OrderType.java similarity index 63% rename from src/main/java/kitchenpos/domain/OrderType.java rename to src/main/java/kitchenpos/order/domain/OrderType.java index 9548224bb..653f4baeb 100644 --- a/src/main/java/kitchenpos/domain/OrderType.java +++ b/src/main/java/kitchenpos/order/domain/OrderType.java @@ -1,4 +1,4 @@ -package kitchenpos.domain; +package kitchenpos.order.domain; public enum OrderType { DELIVERY, TAKEOUT, EAT_IN diff --git a/src/main/java/kitchenpos/domain/JpaOrderRepository.java b/src/main/java/kitchenpos/order/infra/JpaOrderRepository.java similarity index 60% rename from src/main/java/kitchenpos/domain/JpaOrderRepository.java rename to src/main/java/kitchenpos/order/infra/JpaOrderRepository.java index be5e3e7de..d69d66fff 100644 --- a/src/main/java/kitchenpos/domain/JpaOrderRepository.java +++ b/src/main/java/kitchenpos/order/infra/JpaOrderRepository.java @@ -1,5 +1,7 @@ -package kitchenpos.domain; +package kitchenpos.order.infra; +import kitchenpos.order.domain.Order; +import kitchenpos.order.infra.OrderRepository; import org.springframework.data.jpa.repository.JpaRepository; import java.util.UUID; diff --git a/src/main/java/kitchenpos/domain/OrderRepository.java b/src/main/java/kitchenpos/order/infra/OrderRepository.java similarity index 64% rename from src/main/java/kitchenpos/domain/OrderRepository.java rename to src/main/java/kitchenpos/order/infra/OrderRepository.java index 0e5780390..d2d635975 100644 --- a/src/main/java/kitchenpos/domain/OrderRepository.java +++ b/src/main/java/kitchenpos/order/infra/OrderRepository.java @@ -1,4 +1,8 @@ -package kitchenpos.domain; +package kitchenpos.order.infra; + +import kitchenpos.ordertable.domain.OrderTable; +import kitchenpos.order.domain.Order; +import kitchenpos.order.domain.OrderStatus; import java.util.List; import java.util.Optional; diff --git a/src/main/java/kitchenpos/ui/OrderRestController.java b/src/main/java/kitchenpos/order/ui/OrderRestController.java similarity index 94% rename from src/main/java/kitchenpos/ui/OrderRestController.java rename to src/main/java/kitchenpos/order/ui/OrderRestController.java index b430f6a28..3a721fc94 100644 --- a/src/main/java/kitchenpos/ui/OrderRestController.java +++ b/src/main/java/kitchenpos/order/ui/OrderRestController.java @@ -1,7 +1,7 @@ -package kitchenpos.ui; +package kitchenpos.order.ui; -import kitchenpos.application.OrderService; -import kitchenpos.domain.Order; +import kitchenpos.order.application.OrderService; +import kitchenpos.order.domain.Order; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; diff --git a/src/main/java/kitchenpos/application/OrderTableService.java b/src/main/java/kitchenpos/ordertable/application/OrderTableService.java similarity index 91% rename from src/main/java/kitchenpos/application/OrderTableService.java rename to src/main/java/kitchenpos/ordertable/application/OrderTableService.java index 9f0541e06..b7432a93a 100644 --- a/src/main/java/kitchenpos/application/OrderTableService.java +++ b/src/main/java/kitchenpos/ordertable/application/OrderTableService.java @@ -1,9 +1,9 @@ -package kitchenpos.application; +package kitchenpos.ordertable.application; -import kitchenpos.domain.OrderRepository; -import kitchenpos.domain.OrderStatus; -import kitchenpos.domain.OrderTable; -import kitchenpos.domain.OrderTableRepository; +import kitchenpos.order.infra.OrderRepository; +import kitchenpos.order.domain.OrderStatus; +import kitchenpos.ordertable.domain.OrderTable; +import kitchenpos.ordertable.infra.OrderTableRepository; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/kitchenpos/domain/OrderTable.java b/src/main/java/kitchenpos/ordertable/domain/OrderTable.java similarity index 96% rename from src/main/java/kitchenpos/domain/OrderTable.java rename to src/main/java/kitchenpos/ordertable/domain/OrderTable.java index 444eca042..ec195fa10 100644 --- a/src/main/java/kitchenpos/domain/OrderTable.java +++ b/src/main/java/kitchenpos/ordertable/domain/OrderTable.java @@ -1,4 +1,4 @@ -package kitchenpos.domain; +package kitchenpos.ordertable.domain; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/kitchenpos/domain/JpaOrderTableRepository.java b/src/main/java/kitchenpos/ordertable/infra/JpaOrderTableRepository.java similarity index 69% rename from src/main/java/kitchenpos/domain/JpaOrderTableRepository.java rename to src/main/java/kitchenpos/ordertable/infra/JpaOrderTableRepository.java index 4de7441cc..12f176dfe 100644 --- a/src/main/java/kitchenpos/domain/JpaOrderTableRepository.java +++ b/src/main/java/kitchenpos/ordertable/infra/JpaOrderTableRepository.java @@ -1,5 +1,6 @@ -package kitchenpos.domain; +package kitchenpos.ordertable.infra; +import kitchenpos.ordertable.domain.OrderTable; import org.springframework.data.jpa.repository.JpaRepository; import java.util.UUID; diff --git a/src/main/java/kitchenpos/domain/OrderTableRepository.java b/src/main/java/kitchenpos/ordertable/infra/OrderTableRepository.java similarity index 73% rename from src/main/java/kitchenpos/domain/OrderTableRepository.java rename to src/main/java/kitchenpos/ordertable/infra/OrderTableRepository.java index 246852f95..38ab7c8d3 100644 --- a/src/main/java/kitchenpos/domain/OrderTableRepository.java +++ b/src/main/java/kitchenpos/ordertable/infra/OrderTableRepository.java @@ -1,4 +1,6 @@ -package kitchenpos.domain; +package kitchenpos.ordertable.infra; + +import kitchenpos.ordertable.domain.OrderTable; import java.util.List; import java.util.Optional; diff --git a/src/main/java/kitchenpos/ui/OrderTableRestController.java b/src/main/java/kitchenpos/ordertable/ui/OrderTableRestController.java similarity index 93% rename from src/main/java/kitchenpos/ui/OrderTableRestController.java rename to src/main/java/kitchenpos/ordertable/ui/OrderTableRestController.java index dcdbd7f5a..58d6ebba5 100644 --- a/src/main/java/kitchenpos/ui/OrderTableRestController.java +++ b/src/main/java/kitchenpos/ordertable/ui/OrderTableRestController.java @@ -1,7 +1,7 @@ -package kitchenpos.ui; +package kitchenpos.ordertable.ui; -import kitchenpos.application.OrderTableService; -import kitchenpos.domain.OrderTable; +import kitchenpos.ordertable.application.OrderTableService; +import kitchenpos.ordertable.domain.OrderTable; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; diff --git a/src/main/java/kitchenpos/application/ProductService.java b/src/main/java/kitchenpos/product/application/ProductService.java similarity index 89% rename from src/main/java/kitchenpos/application/ProductService.java rename to src/main/java/kitchenpos/product/application/ProductService.java index dc44b087b..125b625e6 100644 --- a/src/main/java/kitchenpos/application/ProductService.java +++ b/src/main/java/kitchenpos/product/application/ProductService.java @@ -1,11 +1,11 @@ -package kitchenpos.application; +package kitchenpos.product.application; -import kitchenpos.domain.Menu; -import kitchenpos.domain.MenuProduct; -import kitchenpos.domain.MenuRepository; -import kitchenpos.domain.Product; -import kitchenpos.domain.ProductRepository; -import kitchenpos.infra.PurgomalumClient; +import kitchenpos.menu.domain.Menu; +import kitchenpos.menu.domain.MenuProduct; +import kitchenpos.menu.infra.MenuRepository; +import kitchenpos.product.domain.Product; +import kitchenpos.product.infra.ProductRepository; +import kitchenpos.global.infra.PurgomalumClient; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/kitchenpos/domain/Product.java b/src/main/java/kitchenpos/product/domain/Product.java similarity index 96% rename from src/main/java/kitchenpos/domain/Product.java rename to src/main/java/kitchenpos/product/domain/Product.java index e45329e6f..5130d141e 100644 --- a/src/main/java/kitchenpos/domain/Product.java +++ b/src/main/java/kitchenpos/product/domain/Product.java @@ -1,4 +1,4 @@ -package kitchenpos.domain; +package kitchenpos.product.domain; import jakarta.persistence.Column; import jakarta.persistence.Entity; diff --git a/src/main/java/kitchenpos/domain/JpaProductRepository.java b/src/main/java/kitchenpos/product/infra/JpaProductRepository.java similarity index 70% rename from src/main/java/kitchenpos/domain/JpaProductRepository.java rename to src/main/java/kitchenpos/product/infra/JpaProductRepository.java index 1f81d0d15..ef0a78a62 100644 --- a/src/main/java/kitchenpos/domain/JpaProductRepository.java +++ b/src/main/java/kitchenpos/product/infra/JpaProductRepository.java @@ -1,5 +1,6 @@ -package kitchenpos.domain; +package kitchenpos.product.infra; +import kitchenpos.product.domain.Product; import org.springframework.data.jpa.repository.JpaRepository; import java.util.UUID; diff --git a/src/main/java/kitchenpos/domain/ProductRepository.java b/src/main/java/kitchenpos/product/infra/ProductRepository.java similarity index 77% rename from src/main/java/kitchenpos/domain/ProductRepository.java rename to src/main/java/kitchenpos/product/infra/ProductRepository.java index 51f548fb5..4217e9c50 100644 --- a/src/main/java/kitchenpos/domain/ProductRepository.java +++ b/src/main/java/kitchenpos/product/infra/ProductRepository.java @@ -1,4 +1,6 @@ -package kitchenpos.domain; +package kitchenpos.product.infra; + +import kitchenpos.product.domain.Product; import java.util.List; import java.util.Optional; diff --git a/src/main/java/kitchenpos/ui/ProductRestController.java b/src/main/java/kitchenpos/product/ui/ProductRestController.java similarity index 92% rename from src/main/java/kitchenpos/ui/ProductRestController.java rename to src/main/java/kitchenpos/product/ui/ProductRestController.java index ec700fd38..bf1ccd51a 100644 --- a/src/main/java/kitchenpos/ui/ProductRestController.java +++ b/src/main/java/kitchenpos/product/ui/ProductRestController.java @@ -1,7 +1,7 @@ -package kitchenpos.ui; +package kitchenpos.product.ui; -import kitchenpos.application.ProductService; -import kitchenpos.domain.Product; +import kitchenpos.product.application.ProductService; +import kitchenpos.product.domain.Product; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; diff --git a/src/test/java/kitchenpos/Fixtures.java b/src/test/java/kitchenpos/Fixtures.java index f1cd5992e..25f8670c9 100644 --- a/src/test/java/kitchenpos/Fixtures.java +++ b/src/test/java/kitchenpos/Fixtures.java @@ -1,14 +1,14 @@ package kitchenpos; -import kitchenpos.domain.Menu; -import kitchenpos.domain.MenuGroup; -import kitchenpos.domain.MenuProduct; -import kitchenpos.domain.Order; -import kitchenpos.domain.OrderLineItem; -import kitchenpos.domain.OrderStatus; -import kitchenpos.domain.OrderTable; -import kitchenpos.domain.OrderType; -import kitchenpos.domain.Product; +import kitchenpos.menu.domain.Menu; +import kitchenpos.menugroup.domain.MenuGroup; +import kitchenpos.menu.domain.MenuProduct; +import kitchenpos.order.domain.Order; +import kitchenpos.order.domain.OrderLineItem; +import kitchenpos.order.domain.OrderStatus; +import kitchenpos.ordertable.domain.OrderTable; +import kitchenpos.order.domain.OrderType; +import kitchenpos.product.domain.Product; import java.math.BigDecimal; import java.time.LocalDateTime; diff --git a/src/test/java/kitchenpos/application/FakeKitchenridersClient.java b/src/test/java/kitchenpos/application/FakeKitchenridersClient.java index 57747eaa9..d38ddfdc2 100644 --- a/src/test/java/kitchenpos/application/FakeKitchenridersClient.java +++ b/src/test/java/kitchenpos/application/FakeKitchenridersClient.java @@ -1,6 +1,6 @@ package kitchenpos.application; -import kitchenpos.infra.KitchenridersClient; +import kitchenpos.global.infra.KitchenridersClient; import java.math.BigDecimal; import java.util.UUID; diff --git a/src/test/java/kitchenpos/application/FakePurgomalumClient.java b/src/test/java/kitchenpos/application/FakePurgomalumClient.java index abe38ce35..b868b34a2 100644 --- a/src/test/java/kitchenpos/application/FakePurgomalumClient.java +++ b/src/test/java/kitchenpos/application/FakePurgomalumClient.java @@ -1,6 +1,6 @@ package kitchenpos.application; -import kitchenpos.infra.PurgomalumClient; +import kitchenpos.global.infra.PurgomalumClient; import java.util.Arrays; import java.util.List; diff --git a/src/test/java/kitchenpos/application/InMemoryMenuGroupRepository.java b/src/test/java/kitchenpos/application/InMemoryMenuGroupRepository.java index 7e566087f..07597e987 100644 --- a/src/test/java/kitchenpos/application/InMemoryMenuGroupRepository.java +++ b/src/test/java/kitchenpos/application/InMemoryMenuGroupRepository.java @@ -1,7 +1,7 @@ package kitchenpos.application; -import kitchenpos.domain.MenuGroup; -import kitchenpos.domain.MenuGroupRepository; +import kitchenpos.menugroup.domain.MenuGroup; +import kitchenpos.menugroup.infra.MenuGroupRepository; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/test/java/kitchenpos/application/InMemoryMenuRepository.java b/src/test/java/kitchenpos/application/InMemoryMenuRepository.java index deaab0bf5..bfd4fd9b0 100644 --- a/src/test/java/kitchenpos/application/InMemoryMenuRepository.java +++ b/src/test/java/kitchenpos/application/InMemoryMenuRepository.java @@ -1,7 +1,7 @@ package kitchenpos.application; -import kitchenpos.domain.Menu; -import kitchenpos.domain.MenuRepository; +import kitchenpos.menu.domain.Menu; +import kitchenpos.menu.infra.MenuRepository; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/test/java/kitchenpos/application/InMemoryOrderRepository.java b/src/test/java/kitchenpos/application/InMemoryOrderRepository.java index 434c9c872..8451d52e0 100644 --- a/src/test/java/kitchenpos/application/InMemoryOrderRepository.java +++ b/src/test/java/kitchenpos/application/InMemoryOrderRepository.java @@ -1,9 +1,9 @@ package kitchenpos.application; -import kitchenpos.domain.Order; -import kitchenpos.domain.OrderRepository; -import kitchenpos.domain.OrderStatus; -import kitchenpos.domain.OrderTable; +import kitchenpos.order.domain.Order; +import kitchenpos.order.infra.OrderRepository; +import kitchenpos.order.domain.OrderStatus; +import kitchenpos.ordertable.domain.OrderTable; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/test/java/kitchenpos/application/InMemoryOrderTableRepository.java b/src/test/java/kitchenpos/application/InMemoryOrderTableRepository.java index 13e7765c4..1b245ef5e 100644 --- a/src/test/java/kitchenpos/application/InMemoryOrderTableRepository.java +++ b/src/test/java/kitchenpos/application/InMemoryOrderTableRepository.java @@ -1,7 +1,7 @@ package kitchenpos.application; -import kitchenpos.domain.OrderTable; -import kitchenpos.domain.OrderTableRepository; +import kitchenpos.ordertable.domain.OrderTable; +import kitchenpos.ordertable.infra.OrderTableRepository; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/test/java/kitchenpos/application/InMemoryProductRepository.java b/src/test/java/kitchenpos/application/InMemoryProductRepository.java index c2d198f19..468f96824 100644 --- a/src/test/java/kitchenpos/application/InMemoryProductRepository.java +++ b/src/test/java/kitchenpos/application/InMemoryProductRepository.java @@ -1,7 +1,7 @@ package kitchenpos.application; -import kitchenpos.domain.Product; -import kitchenpos.domain.ProductRepository; +import kitchenpos.product.domain.Product; +import kitchenpos.product.infra.ProductRepository; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/test/java/kitchenpos/application/MenuGroupServiceTest.java b/src/test/java/kitchenpos/application/MenuGroupServiceTest.java index 7a9770860..5c3e660b8 100644 --- a/src/test/java/kitchenpos/application/MenuGroupServiceTest.java +++ b/src/test/java/kitchenpos/application/MenuGroupServiceTest.java @@ -1,7 +1,8 @@ package kitchenpos.application; -import kitchenpos.domain.MenuGroup; -import kitchenpos.domain.MenuGroupRepository; +import kitchenpos.menugroup.application.MenuGroupService; +import kitchenpos.menugroup.domain.MenuGroup; +import kitchenpos.menugroup.infra.MenuGroupRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/kitchenpos/application/MenuServiceTest.java b/src/test/java/kitchenpos/application/MenuServiceTest.java index 4a848e42b..beef4e815 100644 --- a/src/test/java/kitchenpos/application/MenuServiceTest.java +++ b/src/test/java/kitchenpos/application/MenuServiceTest.java @@ -1,12 +1,13 @@ package kitchenpos.application; -import kitchenpos.domain.Menu; -import kitchenpos.domain.MenuGroupRepository; -import kitchenpos.domain.MenuProduct; -import kitchenpos.domain.MenuRepository; -import kitchenpos.domain.Product; -import kitchenpos.domain.ProductRepository; -import kitchenpos.infra.PurgomalumClient; +import kitchenpos.menu.domain.Menu; +import kitchenpos.menugroup.infra.MenuGroupRepository; +import kitchenpos.menu.domain.MenuProduct; +import kitchenpos.menu.infra.MenuRepository; +import kitchenpos.product.domain.Product; +import kitchenpos.product.infra.ProductRepository; +import kitchenpos.global.infra.PurgomalumClient; +import kitchenpos.menu.application.MenuService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/kitchenpos/application/OrderServiceTest.java b/src/test/java/kitchenpos/application/OrderServiceTest.java index f386f3d93..1f807e111 100644 --- a/src/test/java/kitchenpos/application/OrderServiceTest.java +++ b/src/test/java/kitchenpos/application/OrderServiceTest.java @@ -1,13 +1,14 @@ package kitchenpos.application; -import kitchenpos.domain.MenuRepository; -import kitchenpos.domain.Order; -import kitchenpos.domain.OrderLineItem; -import kitchenpos.domain.OrderRepository; -import kitchenpos.domain.OrderStatus; -import kitchenpos.domain.OrderTable; -import kitchenpos.domain.OrderTableRepository; -import kitchenpos.domain.OrderType; +import kitchenpos.menu.infra.MenuRepository; +import kitchenpos.order.domain.Order; +import kitchenpos.order.domain.OrderLineItem; +import kitchenpos.order.infra.OrderRepository; +import kitchenpos.order.domain.OrderStatus; +import kitchenpos.ordertable.domain.OrderTable; +import kitchenpos.ordertable.infra.OrderTableRepository; +import kitchenpos.order.domain.OrderType; +import kitchenpos.order.application.OrderService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/kitchenpos/application/OrderTableServiceTest.java b/src/test/java/kitchenpos/application/OrderTableServiceTest.java index 75ff282e7..c8f1fe71b 100644 --- a/src/test/java/kitchenpos/application/OrderTableServiceTest.java +++ b/src/test/java/kitchenpos/application/OrderTableServiceTest.java @@ -1,9 +1,10 @@ package kitchenpos.application; -import kitchenpos.domain.OrderRepository; -import kitchenpos.domain.OrderStatus; -import kitchenpos.domain.OrderTable; -import kitchenpos.domain.OrderTableRepository; +import kitchenpos.order.infra.OrderRepository; +import kitchenpos.order.domain.OrderStatus; +import kitchenpos.ordertable.domain.OrderTable; +import kitchenpos.ordertable.infra.OrderTableRepository; +import kitchenpos.ordertable.application.OrderTableService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/kitchenpos/application/ProductServiceTest.java b/src/test/java/kitchenpos/application/ProductServiceTest.java index ee2287b2d..14b3d706b 100644 --- a/src/test/java/kitchenpos/application/ProductServiceTest.java +++ b/src/test/java/kitchenpos/application/ProductServiceTest.java @@ -1,10 +1,11 @@ package kitchenpos.application; -import kitchenpos.domain.Menu; -import kitchenpos.domain.MenuRepository; -import kitchenpos.domain.Product; -import kitchenpos.domain.ProductRepository; -import kitchenpos.infra.PurgomalumClient; +import kitchenpos.menu.domain.Menu; +import kitchenpos.menu.infra.MenuRepository; +import kitchenpos.product.domain.Product; +import kitchenpos.product.infra.ProductRepository; +import kitchenpos.global.infra.PurgomalumClient; +import kitchenpos.product.application.ProductService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; From fb9d578bb6183b9fecc68f71bf618481dc958b1f Mon Sep 17 00:00:00 2001 From: hongsumin <> Date: Tue, 18 Feb 2025 19:38:53 +0900 Subject: [PATCH 08/10] =?UTF-8?q?docs=20(kitchenpos)=20:=20step1=20?= =?UTF-8?q?=ED=94=BC=EB=93=9C=EB=B0=B1=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 091c31a41..513c52b67 100644 --- a/README.md +++ b/README.md @@ -98,10 +98,10 @@ docker compose -p kitchenpos up -d ### 상품 (product) -| 한글 명 | 영문 명 | 설명 -|-------------|----------------------|----------- +| 한글 명 | 영문 명 | 설명 +|-------------|----------------------|--------- | 상품 | product | 판매할 수 있는 개별 `상품`| -| 상품 가격 | product price | `상품`의 가격을 설정하는 기능| +| 상품 가격 | product price | `상품`의 가격| | 상품 이름 | product name | `상품`의 고유한 이름| | 상품 목록 | product list |등록된 `상품`들의 전체 목록| | 상품 등록하기 | create product |새로운 `상품`을 등록하는 기능| @@ -159,6 +159,14 @@ docker compose -p kitchenpos up -d | 주문 항목 | order item | 고객이 메뉴를 선택 후 `주문`한 내역 | +### 주문 유형 (order type) +| 한글명 | 영문명 | 설명 | +|------|----------|----------------------| +| 배달 | delivery | `배달`로 주문한 경우 | +| 포장 | take out | `포장`으로 주문할 경우 | +| 먹고가기 | eat in | `먹고가기` 주문할 경우 | + + ### 배달 주문 (delivery) | 한글명 | 영문명 | 설명 | |-------------|-----------------|-------------------------------------------| From e761508ef6ed7e45301ec10042f822d15bf2d61a Mon Sep 17 00:00:00 2001 From: hongsumin <> Date: Tue, 18 Feb 2025 19:45:32 +0900 Subject: [PATCH 09/10] =?UTF-8?q?docs=20(kitchenpos)=20:=20=EB=A9=94?= =?UTF-8?q?=EB=89=B4=20=EB=93=B1=EB=A1=9D=ED=95=98=EA=B8=B0=20=EA=B0=80?= =?UTF-8?q?=EA=B2=A9=20=EC=A0=95=EC=B1=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 513c52b67..e6b792cd6 100644 --- a/README.md +++ b/README.md @@ -228,7 +228,7 @@ docker compose -p kitchenpos up -d ### `메뉴 등록하기(create menu)` 정책 - 하나 이상의 `상품(product)`이 포함된 경우에만 `메뉴(menu)`를 등록할 수 있다. -- `메뉴 가격(menu price)`이 `메뉴 상품(menu product)` 가격 합보다 크거나 같아야 등록이 가능하다. +- `메뉴(menu)`에 속한 `메뉴 상품(menu product)` 금액의 합은 `메뉴 가격(menu price)`보다 크거나 같아야 등록이 가능하다. ### `메뉴 가격 변경하기(change menu price)` 정책 - `메뉴 가격(menu price)`이 0원 이상인 경우에만 변경할 수 있다. From 3a4289ad3de9ed0b86f4c64fc66183fb4806c2a4 Mon Sep 17 00:00:00 2001 From: hongsumin <> Date: Sun, 23 Feb 2025 00:20:29 +0900 Subject: [PATCH 10/10] =?UTF-8?q?docs=20(kitchenpos)=20:=20=EC=A3=BC?= =?UTF-8?q?=EB=AC=B8=20=EC=9C=A0=ED=98=95=20=EB=B3=84=20=EC=A0=95=EC=B1=85?= =?UTF-8?q?=20=EB=B0=8F=20=EC=A3=BC=EB=AC=B8=EC=83=81=ED=83=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 141 +++++++++++++++++++++++++++++------------------------- 1 file changed, 75 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index e6b792cd6..f1bc22373 100644 --- a/README.md +++ b/README.md @@ -134,65 +134,64 @@ docker compose -p kitchenpos up -d ### 주문 테이블 (order table) -| 한글명 | 영문명 | 설명 | -|----------------|-------------------------|------------------------------------| -| 주문 테이블 | order table | 매장 내에서 고객이 식사하는 `테이블` | -| 주문 테이블 이름 | order table name | `주문 테이블`의 고유한 이름 (비워 둘 수 없음) | -| 주문 테이블 상태 | order table status | `주문 테이블`이 빈 상태인지, 손님이 채워진 상태인지의 여부 | -| 방문 손님 수 | number of guests | `주문 테이블`에 앉은 손님 수 (0 이상) | -| 주문 테이블 목록 | order table list | 등록된 `주문 테이블`들의 전체 목록 | -| 주문 테이블 등록하기 | create order table | 새로운 `주문 테이블`을 등록하는 기능 | -| 빈 테이블에 앉기 | sit order table | 빈 `테이블`을 해지하는 기능 (손님이 테이블에 앉은 상태) | -| 주문 테이블 치우기 | clear order table | 빈 `테이블`로 설정하는 기능 (손님이 테이블에 없는 상태) | -| 방문 손님 수 변경하기 | change number of guests | `주문 테이`블의 방문한 손님 수를 수정하는 기능 | -| 주문 테이블 목록 조회하기 | find order table list | 등록된 `주문 테이블` 목록을 조회하는 기능 | +| 한글명 | 영문명 | 설명 | +|--------------------|-------------------------|------------------------------------| +| 주문 테이블 | order table | 매장 내에서 고객이 식사하는 `테이블` | +| 주문 테이블 이름 | order table name | `주문 테이블`의 고유한 이름 (비워 둘 수 없음) | +| 주문 테이블 상태 | order table status | `주문 테이블`이 빈 상태인지, 손님이 채워진 상태인지의 여부 | +| 방문 손님 수 | number of guests | `주문 테이블`에 앉은 손님 수 (0 이상) | +| 주문 테이블 목록 | order table list | 등록된 `주문 테이블`들의 전체 목록 | +| 주문 테이블 등록하기 | create order table | 새로운 `주문 테이블`을 등록하는 기능 | +| 주문 테이블 사용 상태로 설정하기 | sit order table | 빈 `테이블`을 해지하는 기능 (손님이 테이블에 앉은 상태) | +| 주문 테이블 미사용 상태로 설정하 | clear order table | 빈 `테이블`로 설정하는 기능 (손님이 테이블에 없는 상태) | +| 방문 손님 수 변경하기 | change number of guests | `주문 테이`블의 방문한 손님 수를 수정하는 기능 | +| 주문 테이블 목록 조회하기 | find order table list | 등록된 `주문 테이블` 목록을 조회하는 기능 | ### 주문 (order) -| 한글명 | 영문명 | 설명 | -|-------------|-----------------|-------------------------------------------| -| 주문 | order | 손님이 하나 이상의 메뉴 목록을 제공받기 위해 요청하는 것 | -| 주문 타입 | order type | 주문의 방식 (배달, 포장, 매장 주문) | -| 주문 상태 | order status | 주문의 진행 상태 (대기, 수락됨, 제공됨, 배달 중, 배달 완료, 완료) | -| 주문 목록 | order list | 등록된 주문들의 전체 목록 | -| 주문 목록 조회하기 | find order list | 등록된 주문 목록을 조회하는 기능 | -| 주문 항목 | order item | 고객이 메뉴를 선택 후 `주문`한 내역 | - - -### 주문 유형 (order type) -| 한글명 | 영문명 | 설명 | -|------|----------|----------------------| -| 배달 | delivery | `배달`로 주문한 경우 | -| 포장 | take out | `포장`으로 주문할 경우 | -| 먹고가기 | eat in | `먹고가기` 주문할 경우 | - +| 한글명 | 영문명 | 설명 | +|------------|-----------------|-------------------------------------------| +| 주문 | order | 손님이 하나 이상의 메뉴 목록을 제공받기 위해 요청하는 것 | +| 주문 타입 | order type | 주문의 방식 (배달, 포장, 매장 주문) | +| 주문 상태 | order status | 주문의 진행 상태 (대기, 수락됨, 제공됨, 배달 중, 배달 완료, 완료) | +| 주문 목록 | order list | 등록된 주문들의 전체 목록 | +| 주문 목록 조회하기 | find order list | 등록된 주문 목록을 조회하는 기능 | +| 주문 항목 | order item | 고객이 메뉴를 선택 후 `주문`한 내역 | +| 주문 대기 | waiting | 주문 요청상태 (주문 등록 후 대기상태) | +| 주문 수락 | accepted | 주문 요청 후 수락상태 | ### 배달 주문 (delivery) -| 한글명 | 영문명 | 설명 | -|-------------|-----------------|-------------------------------------------| -| 배달 | delivery | `배달(배달대행사 호출)`로 주문한 경우 | -| 배달 주문 | delivery order | `배달대행사(라이더)`에게 메뉴를 제공받기위한 `주문 유형` 중 하나 | -| 배달 대행사 | delivery agency | 배달 대행 업체 | -| 배달 대행사 호출하기 | call delivery agency | 배달 대행 업체의 라이더 호출 | -| 배달 주소 | delivery address | 라이더가 배달 해야될 고객의 `배달지 주소` | -| 배달 중 | delivering | 서빙/제공완료 후 배달중 상태 | -| 배달완료 | delivered | 배달중 이후 배달완료 상태 | +| 한글명 | 영문명 | 설명 | +|-------------|-----------------|----------------------------------------| +| 배달 | delivery | `배달(배달대행사 호출)`로 주문한 경우, `주문 유형` 중 하나 | +| 배달 주문 | delivery order | `배달대행사(라이더)`에게 메뉴를 제공받기위한 `주문 유형` 중 하나 | +| 배달 대행사 | delivery agency | 배달 대행 업체 | +| 배달 대행사 호출하기 | call delivery agency | 배달 대행 업체의 라이더 호출 | +| 배달 주소 | delivery address | 라이더가 배달 해야될 고객의 `배달지 주소` | +| 주문 주문 접수 | waiting | 배달 주문 요청상태 (주문 등록 후 대기상태) | +| 배달 주문 수락 | accepted | 배달 주문을 접수되면 배달 대행사를 호출 | +| 배달 중 | delivering | 서빙/제공완료 후 배달중 상태 | +| 배달완료 | delivered | 배달중 이후 배달완료 상태 | +| 배달 주문 제공 완료 | served | 배달이 완료되어 주문이 제공 된 상태 | ### 포장 주문 (take out) -| 한글명 | 영문명 | 설명 | -|-------------|----------------|-------------------------------------------| -| 포장 | take out | `포장`으로 주문할 경우 | -| 포장 주문 | take out order | `고객이 직접 메뉴를 수령`하기위한 `주문 유형` 중의 하나 | +| 한글명 | 영문명 | 설명 | +|-------------|----------------|-----------------------------------| +| 포장 | take out | `포장`으로 주문할 경우, `주문 유형` 중 하나 | +| 포장 주문 | take out order | `고객이 직접 메뉴를 수령`하기위한 `주문 유형` 중의 하나 | +| 포장 주문 접수 | waiting | 포장 주문 요청상태 (주문 등록 후 대기상태) | +| 포장 주문 수락 | accepted | 포장 주문 수락 | +| 포장 주문 제공 완료 | served | 픽업 완료되어 주문이 제공 된 상태 | ### 먹고 가기 (eat in) -| 한글명 | 영문명 | 설명 | -|-------------|-----------------|-------------------------------------------| -| 매장 주문 | table order | `먹고가기`를 하기위한 `주문 유형` 중 하나 | -| 먹고가기 | eat in | `매장 식사`로 주문할 경우 | -| 대기 | waiting | 주문 요청상태 (주문 등록 후 대기상태) | -| 수락 | accepted | 주문 요청 후 수락상태 | -| 서빙/제공 | served | 주문 수락 후 서빙/제공완료 상태 | +| 한글명 | 영문명 | 설명 | +|-------------|-----------------|-------------------------------| +| 매장 주문 | table order | `먹고가기`를 하기위한 `주문 유형` 중 하나 | +| 먹고가기 | eat in | `매장 식사`로 주문할 경우 | +| 매장 주문 접수 | waiting | 매장 식사로 주문 요청상태 (주문 등록 후 대기상태) | +| 매장 주문 수락 | accepted | 매장 식사로 주문 수락 | +| 매장 주문 제공 완료 | served | 서빙이 완료된 상태 | ## 모델링 @@ -271,32 +270,42 @@ docker compose -p kitchenpos up -d - `숨겨진 메뉴(hide menu)`를 주문할 수 없다. ### 주문 상태 (order status) 변경 정책 +#### 공통 - 주문이 접수되면, `대기(waiting)` 상태가 된다. - 직원은 `대기(waiting)` 상태의 주문을 `주문 수락(accepted)`할 수 있다. -- 직원은 `주문 수락(accepted)` 상태 주무을 `주문 제공(served)`할 수 있다. -- 직원은 `주문 제공(served)`상태 주문을 `배달 중(delivering)`으로 변경할 수 있다. -- `배달 중(delivering)`상태인 주문을 `배달 완료(delivered)`상태로 변경할 수 있다. -- `배달 완료(delivered)` 된 주문을 `주문 완료(completed)` 할 수 있다. -- `주문 제공(served)` 된 주문을 `주문 완료(completed)` 할 수 있다. + +`배달 주문 (delivery order)` +- waiting (대기) -> accepted (주문 수락) +- accepted (주문 수락) -> served (주문 제공) +- served (주문 제공) -> delivering (배달 중) +- delivering (배달 중) -> delivered (배달 완료) +- delivered (배달 완료) -> completed (주문 완료) + +`포장 주문 (takeout order)` +- waiting (대기) -> accepted (주문 수락) +- accepted (주문 수락) -> served (주문 제공) +- served (주문 제공) -> completed (주문 완료) + +`매장 주문 (eat in order)` +- waiting (대기) -> accepted (주문 수락) +- accepted (주문 수락) -> served (주문 제공) +- served (주문 제공) -> completed (주문 완료) --- ## `주문 유형 (order type)` -### `배달 주문 (delivery order)` -- 속성 - - 주문 유형(order type), 주문 상태(order status), 주문 항목(order item), 배달 주소(delivery address)를 가진다. - - `배달 주소(delivery address)`는 비워 둘 수 없다. - -- 기능 - - `배달 대행사 호출하기(call delivery agency)`를 통해 배달을 요청할 수 있다. +### `배달 주문 (delivery order)` 정책 +- `배달 주문(delivery order)`은 `배달 주소(delivery address)`가 있어야 한다. +- `배달 주문` 등록 시 `주문 상태(order status)`는 `주문 대기(waiting)` 상태가 된다. -### `포장 주문 (takeout order)` +### `포장 주문 (takeout order)` 정책 +- `포장 주문` 등록 시 `주문 상태(order status)`는 `주문 대기(waiting)` 상태가 된다 -### `매장 주문 (table order)` -- 속성 - - `매장 주문(table order)`은 `주문 테이블(order table)`을 가진다. - - `주문 테이블 상태(order table status)`가 사용 중이어야 한다. +### `매장 주문 (eat in order)` 정책 +- `매장 주문(eat-in order)`은 `주문 테이블(order table)`이 있어야 한다. +- `주문 테이블(order table)`이 사용 중 상태여야 한다. +- `매장 주문` 등록 시 `주문 상태(order status)`는 `주문 대기(waiting)`상태가 된다.