Skip to content

hyungkishin/ddd-strategic-design

 
 

Repository files navigation

키친포스

퀵 스타트

cd docker
docker compose -p kitchenpos up -d

요구 사항

상품

  • 상품을 등록할 수 있다.
  • 상품의 가격이 올바르지 않으면 등록할 수 없다.
    • 상품의 가격은 0원 이상이어야 한다.
  • 상품의 이름이 올바르지 않으면 등록할 수 없다.
    • 상품의 이름에는 비속어가 포함될 수 없다.
  • 상품의 가격을 변경할 수 있다.
  • 상품의 가격이 올바르지 않으면 변경할 수 없다.
    • 상품의 가격은 0원 이상이어야 한다.
  • 상품의 가격이 변경될 때 메뉴의 가격이 메뉴에 속한 상품 금액의 합보다 크면 메뉴가 숨겨진다.
  • 상품의 목록을 조회할 수 있다.

메뉴 그룹

  • 메뉴 그룹을 등록할 수 있다.
  • 메뉴 그룹의 이름이 올바르지 않으면 등록할 수 없다.
    • 메뉴 그룹의 이름은 비워 둘 수 없다.
  • 메뉴 그룹의 목록을 조회할 수 있다.

메뉴

  • 1 개 이상의 등록된 상품으로 메뉴를 등록할 수 있다.
  • 상품이 없으면 등록할 수 없다.
  • 메뉴에 속한 상품의 수량은 0 이상이어야 한다.
  • 메뉴의 가격이 올바르지 않으면 등록할 수 없다.
    • 메뉴의 가격은 0원 이상이어야 한다.
  • 메뉴에 속한 상품 금액의 합은 메뉴의 가격보다 크거나 같아야 한다.
  • 메뉴는 특정 메뉴 그룹에 속해야 한다.
  • 메뉴의 이름이 올바르지 않으면 등록할 수 없다.
    • 메뉴의 이름에는 비속어가 포함될 수 없다.
  • 메뉴의 가격을 변경할 수 있다.
  • 메뉴의 가격이 올바르지 않으면 변경할 수 없다.
    • 메뉴의 가격은 0원 이상이어야 한다.
  • 메뉴에 속한 상품 금액의 합은 메뉴의 가격보다 크거나 같아야 한다.
  • 메뉴를 노출할 수 있다.
  • 메뉴의 가격이 메뉴에 속한 상품 금액의 합보다 높을 경우 메뉴를 노출할 수 없다.
  • 메뉴를 숨길 수 있다.
  • 메뉴의 목록을 조회할 수 있다.

주문 테이블

  • 주문 테이블을 등록할 수 있다.
  • 주문 테이블의 이름이 올바르지 않으면 등록할 수 없다.
    • 주문 테이블의 이름은 비워 둘 수 없다.
  • 빈 테이블을 해지할 수 있다.
  • 빈 테이블로 설정할 수 있다.
  • 완료되지 않은 주문이 있는 주문 테이블은 빈 테이블로 설정할 수 없다.
  • 방문한 손님 수를 변경할 수 있다.
  • 방문한 손님 수가 올바르지 않으면 변경할 수 없다.
    • 방문한 손님 수는 0 이상이어야 한다.
  • 빈 테이블은 방문한 손님 수를 변경할 수 없다.
  • 주문 테이블의 목록을 조회할 수 있다.

주문

  • 1개 이상의 등록된 메뉴로 배달 주문을 등록할 수 있다.
  • 1개 이상의 등록된 메뉴로 포장 주문을 등록할 수 있다.
  • 1개 이상의 등록된 메뉴로 매장 주문을 등록할 수 있다.
  • 주문 유형이 올바르지 않으면 등록할 수 없다.
  • 메뉴가 없으면 등록할 수 없다.
  • 매장 주문은 주문 항목의 수량이 0 미만일 수 있다.
  • 매장 주문을 제외한 주문의 경우 주문 항목의 수량은 0 이상이어야 한다.
  • 배달 주소가 올바르지 않으면 배달 주문을 등록할 수 없다.
    • 배달 주소는 비워 둘 수 없다.
  • 빈 테이블에는 매장 주문을 등록할 수 없다.
  • 숨겨진 메뉴는 주문할 수 없다.
  • 주문한 메뉴의 가격은 실제 메뉴 가격과 일치해야 한다.
  • 주문을 접수한다.
  • 접수 대기 중인 주문만 접수할 수 있다.
  • 배달 주문을 접수되면 배달 대행사를 호출한다.
  • 주문을 서빙한다.
  • 접수된 주문만 서빙할 수 있다.
  • 주문을 배달한다.
  • 배달 주문만 배달할 수 있다.
  • 서빙된 주문만 배달할 수 있다.
  • 주문을 배달 완료한다.
  • 배달 중인 주문만 배달 완료할 수 있다.
  • 주문을 완료한다.
  • 배달 주문의 경우 배달 완료된 주문만 완료할 수 있다.
  • 포장 및 매장 주문의 경우 서빙된 주문만 완료할 수 있다.
  • 주문 테이블의 모든 매장 주문이 완료되면 빈 테이블로 설정한다.
  • 완료되지 않은 매장 주문이 있는 주문 테이블은 빈 테이블로 설정하지 않는다.
  • 주문 목록을 조회할 수 있다.

용어 사전

한글명 영문명 설명

모델링

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%