Skip to content

baekss/jwp-refactoring

 
 

Repository files navigation

키친포스

요구 사항

상품

  • 상품 등록
    • 가격은 반드시 0원 이상이어야 함
  • 모든 상품 조회

메뉴

  • 메뉴 등록
    • 등록 메뉴 가격은 반드시 0원 초과여야 함
    • 등록 메뉴의 메뉴 그룹이 존재해야 함
    • 등록 메뉴에 속한 상품 수량과 상품가격을 곱했을 때 결과가 0원 초과여야 함
  • 모든 메뉴 조회

메뉴 그룹

  • 메뉴 그룹 등록
  • 모든 메뉴 그룹 조회

주문

  • 주문 등록
    • 주문 메뉴와 주문 수량이 존재해야 함
    • 주문 메뉴(들)은 반드시 존재하는 메뉴(들)여야 함
    • 주문을 받을 테이블은 존재해야 함
    • 주문을 받을 테이블은 빈(empty) 상태여야 함
    • 주문을 받을 테이블 상태를 요리 중으로 변경 함
    • 등록한 주문과 주문한 메뉴 정보를 주문메뉴로 정리 함
  • 모든 주문(주문메뉴 포함) 조회
  • 주문 상태 갱신
    • 해당 주문이 존재해야 함
    • 해당 주문이 완료(completion) 상태 아니여야 함

테이블

  • 주문을 받을 수 있는 테이블 등록(고객: 0, 상태: empty)
  • 모든 테이블의 현재 상태 조회
  • 해당 테이블을 주문 받는 테이블로 갱신
    • 해당 테이블이 존재햐야 함
    • 해당 테이블의 테이블 그룹이 존재하지 않아야 함
    • 해당 테이블의 상태가 요리 중 또는 식사 중 상태 아니어야 함
    • 테이블을 비어있지 않은(not empty) 상태로 만듬
  • 해당 테이블의 고객수 갱신
    • 해당 테이블 고객수가 0명 초과여야 함
    • 주문을 받을 테이블이 존재해야 함
    • 갱신 대상 테이블이 비어있지 않은(not empty) 상태여야 함

테이블 그룹

  • 주문을 받을 수 있는 여러개의 테이블을 하나의 그룹으로 통합 등록
    • 통합할 테이블을 지목한 값이 존재해야 함
    • 통합할 테이블은 2개 이상이어야 함
    • 통합할 테이블이 실제 모두 존재해야 함
    • 통합할 테이블은 빈(empty) 상태여야 하고 어느 테이블 그룹에도 속하지 않아야 함
    • 통합할 테이블을 그룹화 하고 각 테이블을 비어있지 않은(not empty) 상태로 만듬
  • 그룹화 된 테이블들의 그룹화 해제
    • 그룹화 된 테이블이 요리 중 식사 중 상태 아니어야 함

용어 사전

한글명 영문명 설명
상품 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 포장하지 않고 매장에서 식사하는 것

About

우아한테크캠프 pro DDD 과정 저장소

Topics

Resources

Stars

Watchers

Forks

Languages

  • Java 99.6%
  • Dockerfile 0.4%