Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Step2 - 요구사항 정리 #831

Merged
merged 4 commits into from
Feb 6, 2025
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 101 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,107 @@
cd docker
docker compose -p kitchenpos up -d
```
## 요구 사항
### 메뉴 그룹

## 요구 사항
- [ ] 메뉴 그룹은 메뉴가 포함될 수 있는 그룹을 의미한다.
- [ ] 메뉴 그룹을 등록할 수 있다.
- [ ] 메뉴 그룹 등록 시, 이름에 빈 값이 들어와서는 안된다.
- [ ] 등록되어 있는 메뉴 그룹의 목록을 확인할 수 있다.

### 상품

- [ ] 상품은 메뉴에 등록할 수 있는 상품을 의미한다.
- [ ] 하나의 상품은 여러 메뉴에서 사용될 수 있다.
- [ ] 상품을 등록할 수 있다.
- [ ] 상품 등록 시, 가격은 포함되어야 하며, 0보다 커야한다.
- [ ] 상품 등록 시, 이름은 포함되어야 하며, 비속어가 포함되어 있으면 안된다.
- [ ] 상품 가격을 수정할 수 있다.
- [ ] 상품 가격 수정 시, 가격은 포함되어야 하며, 0보다 커야한다.
- [ ] 상품 가격 수정 시, 수정 할 상품은 존재해야 한다.
- [ ] 상품 가격 수정 시, 수정된 상품이 포함된 메뉴 내 메뉴 가격이 메뉴 상품 총합보다 크다면 숨김 처리한다.
- [ ] 등록되어 있는 상품 목록을 확인할 수 있다.

### 메뉴

- [ ] 메뉴는 포스기에서 보여지는 메뉴를 의미한다.
- [ ] 하나의 메뉴는 여러개의 상품을 포함할 수 있다.
- [ ] 메뉴를 등록할 수 있다.
- [ ] 메뉴 등록 시, 메뉴 가격이 포함되어야 하며, 메뉴 가격은 0보다 커야한다.
- [ ] 메뉴 등록 시, 존재하는 메뉴 그룹을 사용해야 한다.
- [ ] 메뉴 등록 시, 존재하는 상품을 사용해야 한다.
- [ ] 메뉴 등록 시, 상품 재고가 포함되어야 하며, 상품 재고는 0보다 커야한다.
wlroh marked this conversation as resolved.
Show resolved Hide resolved
- [ ] 메뉴 등록 시, 메뉴 가격은 메뉴 내 포함된 상품들의 총 가격과 같거나 낮아야 한다.
- [ ] 메뉴 등록 시, 메뉴 이름은 포함되어야 하며, 비속어가 포함되어 있으면 안된다.
- [ ] 메뉴의 가격을 수정할 수 있다.
- [ ] 메뉴 가격 수정 시, 메뉴 가격이 포함되어야 하며, 가격은 0보다 커야한다.
- [ ] 메뉴 가격 수정 시, 존재하는 메뉴에 대해서만 메뉴 가격을 수정할 수 있다.
- [ ] 메뉴 가격 수정 시, 메뉴 가격은 메뉴 내 포함된 상품들의 총 가격과 같거나 낮아야 한다.
- [ ] 메뉴를 공개 처리할 수 있다.
- [ ] 메뉴 공개 처리 시, 존재하는 메뉴에 대해서만 메뉴 공개 처리를 할 수 있다.
- [ ] 메뉴 공개 처리 시, 메뉴 가격은 메뉴 내 포함된 상품들의 총 가격과 같거나 낮은 경우에만 공개 처리 할 수 있다.
- [ ] 메뉴를 비공개 처리할 수 있다.
wlroh marked this conversation as resolved.
Show resolved Hide resolved
- [ ] 메뉴 비공개 처리 시, 존재하는 메뉴에 대해서만 메뉴 비공개 처리를 할 수 있다.
- [ ] 등록되어 있는 메뉴 목록을 확인할 수 있다.

### 주문 테이블

- [ ] 주문 테이블은 홀 주문을 위한 정보이다.
- [ ] 주문 테이블 상태는 사용, 미사용이 있다.
- [ ] 주문 테이블을 등록할 수 있다.
- [ ] 주문 테이블 등록 시, 주문 테이블 이름이 포함되어야 한다.
- [ ] 주문 테이블을 사용할 수 있다.
- [ ] 주문 테이블 사용 시, 존재하는 주문 테이블에 대해서만 사용할 수 있다.
- [ ] 주문 테이블을 정리할 수 있다.
- [ ] 주문 테이블 정리 시, 존재하는 주문 테이블에 대해서만 정리할 수 있다.
- [ ] 주문 테이블 정리 시, 주문 상태가 완료 상태여야 한다.
- [ ] 주문 테이블 정리 시, 인원(0명)과 사용 상태(false)를 초기화한다.
wlroh marked this conversation as resolved.
Show resolved Hide resolved
- [ ] 주문 테이블에 인원을 지정할 수 있다.
- [ ] 주문 테이블을 사용 후, 주문 테이블에 인원을 지정한다.
- [ ] 주문 테이블 인원 지정 시, 0명 이상을 지정해야 한다.
- [ ] 주문 테이블 인원 지정 시, 존재하는 주문 테이블에 대해서만 테이블 인원을 지정할 수 있다.
- [ ] 주문 테이블 인원 지정 시, 주문 테이블이 상태는 사용 상태여야 한다.
- [ ] 등록되어 있는 주문 테이블을 확인할 수 있다.

### 주문
wlroh marked this conversation as resolved.
Show resolved Hide resolved

- [ ] 주문을 등록하기 위해서는 주문 테이블 등록이 선행되어야 한다.
- [ ] 주문 타입은 **홀, 포장, 배달**이 있다.
- [ ] 주문 상태는 **주문 대기, 주문 수락, 주문 서빙, 배달 시작, 배달 완료, 주문 완료**가 있다.
- [ ] 주문을 할 수 있다.
- [ ] 주문 시, 주문 타입이 포함되어야 한다.
- [ ] 주문 시, 주문 메뉴가 포함되어야 한다.
- [ ] 주문 시, 주문 타입이 홀인 경우에는 주문 수량이 0보다 커야한다.
wlroh marked this conversation as resolved.
Show resolved Hide resolved
- [ ] 주문 시, 주문 타입이 홀인 경우에는 주문 테이블이 미사용 상태여야 한다.
wlroh marked this conversation as resolved.
Show resolved Hide resolved
- [ ] 주문 시, 주문 타입이 배달인 경우에는 배송 주소를 받아야 한다.
- [ ] 주문 시, 주문 메뉴는 등록되어 있어야 한다.
- [ ] 주문 시, 주문 메뉴가 비공개 상태라면 주문할 수 없다.
- [ ] 주문 시, 메뉴 가격과 주문 가격이 일치하지 않으면 주문할 수 없다.
- [ ] 주문 시, 주문 상태는 주문 대기 상태를 갖는다.
- [ ] 주문을 수락할 수 있다.
- [ ] 주문 수락 시, 존재하는 주문에 대해서만 수락할 수 있다.
- [ ] 주문 수락 시, 주문 상태는 주문 대기 상태여야 한다.
- [ ] 주문 수락 시, 주문 타입이 배달이라면 주문 상품 총액을 계산해 배달 요청을 보낸다.
- [ ] 주문 수락 시, 주문 상태를 주문 수락 상태로 변경한다.
- [ ] 주문을 서빙할 수 있다.
- [ ] 주문 서빙 시, 존재하는 주문에 대해서만 서빙할 수 있다.
- [ ] 주문 서빙 시, 주문 상태는 주문 수락 상태여야 한다.
- [ ] 주문 서빙 시, 주문 상태를 주문 서빙 상태로 변경한다.
- [ ] 주문 타입이 배달인 경우, 주문 배달을 시작할 수 있다.
- [ ] 주문 배달 시작 시, 존재하는 주문에 대해서만 주문 배달을 시작할 수 있다.
- [ ] 주문 배달 시작 시, 주문 상태는 주문 서빙 상태여야 한다.
- [ ] 주문 배달 시작 시, 주문 상태를 배달 시작 상태로 변경한다.
- [ ] 주문 타입이 배달인 경우, 주문 배달을 완료할 수 있다.
- [ ] 주문 배달 완료 시, 존재하는 주문에 대해서만 주문 배달을 완료할 수 있다.
- [ ] 주문 배달 완료 시, 주문 상태는 배달 시작 상태여야 한다.
- [ ] 주문 배달 완료 시, 주문 상태를 배달 완료 상태로 변경한다.
- [ ] 주문을 완료할 수 있다.
- [ ] 주문 완료 시, 존재하는 주문에 대해서만 주문 완료할 수 있다.
- [ ] 주문 완료 시, 주문 타입이 배달인 경우에는 주문 상태가 배달 완료 상태여야 한다.
- [ ] 주문 완료 시, 주문 타입이 홀, 포장인 경우에는 주문 상태가 주문 서빙 상태여야 한다.
- [ ] 주문 완료 시, 주문 상태를 완료 상태로 변경한다.
- [ ] 주문 완료 시, 주문 타입이 홀이라면 주문 테이블 인원(0명)과 사용 상태(false)를 초기화한다.
- [ ] 등록되어 있는 주문 목록을 확인할 수 있다.

## 용어 사전

Expand All @@ -16,3 +115,4 @@ docker compose -p kitchenpos up -d
| | | |

## 모델링