Skip to content

umanking/ddd-tactical-design

 
 

Repository files navigation

키친포스

요구 사항

상품

  • 상품을 등록할 수 있다.
  • 상품의 가격이 올바르지 않으면 등록할 수 없다.
    • 상품의 가격은 0 원 이상이어야 한다.
  • 상품의 목록을 조회할 수 있다.

메뉴 그룹

  • 메뉴 그룹을 등록할 수 있다.
  • 메뉴 그룹의 목록을 조회할 수 있다.

메뉴

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

주문 테이블

  • 주문 테이블을 등록할 수 있다.
  • 주문 테이블의 목록을 조회할 수 있다.
  • 빈 테이블 설정 또는 해지할 수 있다.
  • 단체 지정된 주문 테이블은 빈 테이블 설정 또는 해지할 수 없다.
  • 주문 상태가 조리 또는 식사인 주문 테이블은 빈 테이블 설정 또는 해지할 수 없다.
  • 방문한 손님 수를 입력할 수 있다.
  • 방문한 손님 수가 올바르지 않으면 입력할 수 없다.
    • 방문한 손님 수는 0 명 이상이어야 한다.
  • 빈 테이블은 방문한 손님 수를 입력할 수 없다.

단체 지정

  • 2 개 이상의 빈 테이블을 단체로 지정할 수 있다.
  • 단체 지정은 중복될 수 없다.
  • 단체 지정을 해지할 수 있다.
  • 단체 지정된 주문 테이블의 주문 상태가 조리 또는 식사인 경우 단체 지정을 해지할 수 없다.

주문

  • 1 개 이상의 등록된 메뉴로 주문을 등록할 수 있다.
  • 빈 테이블에는 주문을 등록할 수 없다.
  • 주문의 목록을 조회할 수 있다.
  • 주문 상태를 변경할 수 있다.
  • 주문 상태가 계산 완료인 경우 변경할 수 없다.

용어 사전

상품

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

모델링

상품

  • Product은 번호와 이름, 가격을 가진다.

메뉴

  • MenuGroup은 번호와 이름을 가진다.
  • Menu는 번호와 이름, 가격, MenuProducts를 가진다.
  • MenuProducts의 금액의 합은 Menu의 가격보다 크거나 같다.
  • Menu는 특정 MenuGroup에 속한다.

매장 주문

  • OrderTable은 번호와 방문한 손님 수를 가진다.
  • OrderTableOrder를 등록할 수 있다.
  • 2 개 이상의 EmptyTableTableGroup을 생성할 수 있다.
  • TableGroup은 생성 시간을 가진다.
  • TableGroup에 속한 EmptyTable은 주문할 수 있게 된다.
  • TableGroup에 속하더라도 개별 OrderTableOrder를 등록한다.
  • TableGroup에 속한 OrderTable의 모든 Order가 계산되면 TableGroup을 해지할 수 있다.
  • Order는 번호와 주문 상태, 주문 시간, OrderLineItems를 가진다.
  • Order가 취소되거나 변경되더라도 기존 Order는 수정되지 않는다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%