@@ -0,0 +1,102 @@
+## 크리스마스 프로모션
+
+이벤트 기간: 2023.12.1 ~ 2023.12.31
+
+- 크리스마스 디데이 할인
+  - 이벤트 기간: 2023.12.1 ~ 2023.12.25
+  - 1,000원으로 시작하여 크리스마스가 다가올수록 날마다 할인 금액이 100원씩 증가
+  - 총주문 금액에서 해당 금액만큼 할인
+  - (e.g. 시작일인 12월 1일에 1,000원, 2일에 1,100원, ..., 25일엔 3,400원 할인)
+- 평일 할인(일요일~목요일): 평일에는 디저트 메뉴를 메뉴 1개당 2,023원 할인
+- 주말 할인(금요일, 토요일): 주말에는 메인 메뉴를 메뉴 1개당 2,023원 할인
+- 특별 할인: 이벤트 달력에 별이 있으면 총주문 금액에서 1,000원 할인
+- 증정 이벤트: 할인 전 총주문 금액이 12만 원 이상일 때, 샴페인 1개 증정
+
+
+```
+<애피타이저>
+양송이수프(6,000), 타파스(5,500), 시저샐러드(8,000)
+
+<메인>
+티본스테이크(55,000), 바비큐립(54,000), 해산물파스타(35,000), 크리스마스파스타(25,000)
+
+<디저트>
+초코케이크(15,000), 아이스크림(5,000)
+
+<음료>
+제로콜라(3,000), 레드와인(60,000), 샴페인(25,000)
+```
+
+
+## 기능 목록
+- [x] 방문 날짜를 입력 받는 기능 `getDate()`
+  - 숫자만 입력 받는다.
+- [x] 메뉴와 개수를 입력 받는 기능 (음료만 주문 할 수 없음, 최대 20개까지 주문) `getOrder()`
+  - e.g. 해산물파스타-2,레드와인-1,초코케이크-1
+- [x] 주문 메뉴를 출력 하는 기능 `printMenu(List<String> menus)`
+- [x] 할인 전 총 주문 금액을 계산 하는 기능  `calculateTotalOrderAmount()`
+- [x] 할인 전 총 주문 금액 출력 하는 기능 `printTotalOrderAmount()`
+- [x] 할인 전 총 주문 금액이 120,000원 이상시 샴페인을 증정하는 기능 `calculateGiftMenu(int totalOrderAmount, int totalDiscount)`
+  - 120,000원 미만시 "없음" 출력
+- [x] 크리스 마스 디데이 할인을 계산 하는 기능 `ddayDiscount(int date)`
+  - 1일 ~ 25일 크리스마스와 다가올수록 1,000원 시작 100윈씩 증가
+- [x] 평일 할인을 계산 하는 기능 (주말 제외) `weekDayDiscount(int date, List<String> menus)`
+  - 디저트 메뉴 1개당 2,023원 할인
+- [x] 주말 할인을 계산 하는 기능 (1,2,8,9,15,16,22,23,29,30) `weekendDayDiscount(int date, List<String> menus)`
+  - 메인 메뉴 1개당 2,023원 할인
+- [x] 특별 할인이 가능한 날 인지 확인 하는 기능 (3,10,17,24,25,31) `starDayDiscount(int date)`
+  - 1,000원 할인
+- [x] 혜택 내역을 출력 하는 기능 `printDiscountAmount(int date, List<String> menus, int totalOrderAmount)`
+  - 받은 혜택이 없다면 "없음" 출력
+- [x] 총 혜택 금액을 계산 하는 기능 (할인 금액의 합계 + 증정 샴페인의 가격) `calculateTotalDiscount(int date)`
+  - 혜택 금액이 없을 시 "0원" 출력
+- [x] 할인 후 예상 결제 금액 계산 하는 기능(할인 전 총주문 금액 - 할인 금액) `calculatePayment(int totalOrderAmount, int totalDiscount)`
+- [x] 총 혜택 금액에 따라 이벤트 배지를 출력 하는 기능 `calculateBadge(int totalBenefits)`
+  - 5천 원 미만: 없음 
+  - 5천 원 이상: 별 
+  - 1만 원 이상: 트리 
+  - 2만 원 이상: 산타
+
+
+## 파일 목록
+#### `EventPlanner.java` : 이벤트를 계획하고 실행하는 클래스
+#### `EventProcessor.java` : 이벤트 처리를 담당하는 클래스
+#### `NoEventProcessor.java` : 이벤트가 없을 때 처리를 담당하는 클래스
+#### `Badge.java` : 이벤트 배지 열거형 클래스
+#### `DateDiscount.java` : 날짜에 따른 할인을 계산하는 클래스
+#### `Menu.java` : 음식 메뉴 열거형 클래스
+#### `Order.java` : 주문을 나타내는 클래스
+#### `OrderItem.java` : 주문 항목을 나타내는 클래스
+#### `StarDiscount.java` : 별이 표시된 날에 대한 할인을 계산하는 클래스
+#### `TotalDiscountCalculator.java` : 총 할인을 계산하는 클래스
+#### `WeekendWeekdayDiscount.java` : 주말과 평일에 대한 할인을 계산하는 클래스
+#### `ErrorMessage.java` : 오류 메시지 열거형 클래스
+#### `OrderValidator.java` : 주문의 유효성을 검증하는 클래스
+#### `DiscountOutputPrinter.java` : 할인 내역을 출력하는 클래스
+#### `InputView.java` : 사용자 입력을 받는 클래스
+#### `OrderOutputPrinter.java` : 주문 내역을 출력하는 클래스
+#### `OutputView.java` : 출력 관련 기능을 제공하는 클래스
+#### `Application.java` : 프로그램의 시작점이 되는 클래스
+
+
+## 프로그램 사용법
+1. Application 클래스를 실행하여 프로그램을 시작합니다.
+2. 프로그램은 사용자에게 방문 날짜와 주문을 입력하도록 안내합니다.
+3. 방문 날짜는 숫자로 입력하며, 유효한 날짜여야 합니다 (1 ~ 31).
+4. 주문은 메뉴와 수량을 입력하는 형식으로 이루어집니다 (e.g., 해산물파스타-2,레드와인-1,초코케이크-1).
+5. 프로그램은 입력된 정보를 기반으로 이벤트를 계획하고 출력합니다.
+6. 할인 내역, 주문 메뉴, 총 주문 금액, 총 혜택 금액, 예상 결제 금액, 이벤트 배지 등이 출력됩니다.
+
+    
+## 기능 요구사항
+- 이벤트 기간: 2023.12.1 ~ 2023.12.31
+- 총주문 금액 10,000 이상부터 이벤트 적용
+- 음료만 주문시, 주문할 수 없다.
+- 메뉴는 한번에 최대 20개까지만 주문 할 수 있다.
+- 크리스마스 디데이 할인 : 1,000원으로 시작하여 크리스마스가 다가올수록 날마다 할인 금액이 100원씩 증가 (2023.12.1 ~ 2023.12.31)
+- 평일 할인(일요일~목요일): 평일에는 디저트 메뉴를 메뉴 1개당 2,023원 할인
+- 주말 할인(금요일, 토요일): 주말에는 메인 메뉴를 메뉴 1개당 2,023원 할인
+- 특별 할인: 이벤트 달력에 별이 있으면 총주문 금액에서 1,000원 할인
+- 증정 이벤트: 할인 전 총주문 금액이 12만 원 이상일 때, 샴페인 1개 증정 (25,000)
+- 총주문 금액에서 해당 금액만큼 할인
+- 총혜택 금액에 따라 다른 이벤트 배지를 부여 (별, 트리, 산타)

리뷰: 기능 명세 꼼꼼하게 작성해주셨네요 👍👍👍