에스테틱 — C-09
| 기능 | 구현 | 검증 |
|---|---|---|
| 일간·주간 일정, 산전 예약 | MassagePlannerPage, PlannerBookingDialog; 고객·관리사 중복과 휴직·회차 잔량 검사 |
저장소 단위, 레이아웃, 골든 |
| 완료·노쇼·취소 | AestheticRepository.changeStatus; 소비 상태 간 전환은 이중 차감하지 않음 |
투어 8: 2 → 1, 중복 완료·취소 회복 |
| 산전 회차 전환 | 진단서 확인 후 미사용 회차만 산후 버킷으로 이동; 진행 중 예약은 먼저 취소 | 확인 없는 전환 차단 |
| 코스 목록·모의 구매 | AestheticCourse, PlannerCourseDialog; 공용 PaymentSplitSheet |
결제·회차 원자성, 부족 결제 거절 |
| 일일 보고 | 선택 기간의 관리 상태·신규 코스·승인 매출 | 공유 세계를 직접 집계 |
| 예약 화면에서 연결 | /aesthetic?customer=<id>; 예약 추가의 고객 검색에 적용 |
예약 페이지 경로 시험 |
결제 확인 직전에 공용 모의 결제 안내를 표시한다. 구매·보너스 버킷은 별도 출처로 저장한다. 데모 코스 가격은 AestheticCourse에 있고 기존 구매 이력은 소급 변경하지 않는다. 에스테틱 역할에는 코스 금액만 노출한다.
Figma 차이: 기준 시각 09:00 뒤인 10:00·11:00 슬롯은 완료로 미리 기록하지 않고 예약으로 시작한다. 과거 사용 회차는 기존 버킷에 보존한다. 주간 모드는 날짜가 붙은 일정 목록으로, 좁은 화면에서도 내용을 읽을 수 있게 한다.
산모 관리일지 · 원본 업무 양식 대조 보강
- 관리일지 탭은 예약상세 사이드패널을 제거해 본문을 넓게 쓴다. 가용폭이 글자배율을 고려한 900px 이상이면 CoUI 표로 호실·산모·일시·분류·관리분·관리사·울혈/비고를 한 행에 보이며, 좁은 화면은 상세 카드를 유지한다. 긴 관찰·비고의 전문과 입퇴실일·작성정보는 행의 상세에서 확인한다. 기록·완료 버튼은 각 행 ID에 직접 연결하여 다른 산모를 잘못 완료하지 않는다. 완료 수와 매출 요약은 본문 상단에 배치한다.
- 「시간표 / 산모 관리일지」 탭에서 관리일·일간/주간·임의 기간을 선택한다. 일지는 기존 관리 예약과 같은 행에 연결되며 호실, 산모, 관리사, 입퇴실일, 분류, 실제 관리시간, 울혈 관찰·관리 내용, 추가 관리·비고를 조회·기록·정정한다.
- 기본·스페셜 분류는 관리사가 기록한다. 과거 시드의 코스 구매 여부로 분류를 추정하지 않으며 미분류를 별도로 센다. 산전 메뉴는 산전 관리로 표시한다. 예약 없이 수행한 관리는 「지난 관리 등록」에서 남은 버킷·관리사·날짜·시간을 골라 완료 건으로 등록한다. 미래 완료·중복 시간·휴무·회차 부족은 저장하지 않는다.
- 실제 관리일지의 정정은 회차를 다시 차감하지 않는다. 지난 관리 신규 등록만 완료 전환과 동일하게 지정 버킷 1회를 원자적으로 차감한다. 취소/노쇼의 일지 신규 입력은 막으며, 기존 일지는 취소 후에도 이력으로 보존한다.
- 관리사별 날짜별 근무·휴무를 저장한다. 관리사는 자신의 근무를, 원장·상담실장은 지점의 근무를 기록한다. 기존 예약/관리 내역이 있는 날은 휴무로 바꾸기 전에 일정을 정리해야 하며 휴무일 신규 예약은 막는다.
- 통계는 선택 기간의 완료된 관리만 합산한다. 분류별 회수·미분류·전체 완료 회수·중복 제거한 산모 수·기록된 실제 관리분을 보여 준다. 미기록 실제 시간을 예정 시간으로 채우지 않는다. 코스 매출은 기간 내 승인 결제와 기간 말까지 누적 승인 결제를 나누어 표시한다. 숙박 매출을 합산하지 않는다.
careRecord와 날짜별staff.aestheticDuty는 공용 세계에 저장하고 감사 기록에 담당자·시각을 남긴다. 관리일지는 최초 작성자·시각(createdBy/createdAt)과 최근 수정자·시각(updatedBy/updatedAt)을 구분한다. 정정 전 전체 값은careRecordHistory에 순서대로 누적하며 일지의 「수정 이력」에서 조회한다. 기존recordedBy/recordedAt만 있는 일지는 최초 정보로 승계한다. 예약 상태의 기록 저장은 완료 처리가 아니며, 편집창에도 완료된 관리만 통계에 포함됨을 안내한다. N/TK 등 뜻이 확정되지 않은 원본 약어는 의미를 추정해 구현하지 않는다. 원본의 실명과 손글씨를 시드에 복사하지 않는다.
Scenario: 완료 관리일지를 정정해도 회차가 다시 차감되지 않는다
Given 관리가 완료되어 회차가 1회 차감되었다
When 관리사가 관리시간과 울혈 관찰 및 비고를 저장하고 정정한다
Then 수정 내용과 담당자 및 기록시각이 남는다
And 선택 기간 통계가 수정된 기록을 반영한다
And 회차는 추가로 차감되지 않는다
Scenario: 예약 없는 지난 관리를 등록한다
Given 해당 고객에게 사용 가능한 회차가 있고 관리사는 그날 근무한다
When 과거의 비어 있는 시간에 지난 관리를 등록한다
Then 완료된 관리가 1건 저장되고 지정 회차가 1회 차감된다
And 같은 시간의 중복 등록과 미래의 완료 등록은 거절된다