상품 실행 BOM이 방문별 확정 예약으로 바뀌는 과정
상품 구성 화면에서 발행한 예약 관련 계약을 예약서비스가 다시 해석하지 않고, Plan과 방문 일정으로 전개하는 흐름입니다. 각 단계를 눌러 입력·처리·출력을 확인하세요.
상품관리서비스 소유
상품 특성·패키지 구성·version
필수/선택/택일, 반복 횟수, 구성 상품별 시간·자원, 의존성과 방문 묶음 규칙을 검증해 발행합니다.
EVENT CONTRACT
불변 실행 BOM
version · provenance
snapshotHash
예약서비스 소유
Plan·방문·제안·동의·확정·자원 점유
전달받은 진료 의무를 일정으로 배치하고, 가예약과 고객/관리자 승인 절차를 거쳐 확정합니다.
1. 실행 BOM 발행
상품관리 또는 구매서비스가 구매 당시 선택과 반복 전개를 끝낸 불변 실행 계약을 발행합니다.
입력
→
출력
예시 · 리프팅 집중관리 패키지
하나의 패키지 구매가 4개 진료 의무와 3개의 방문 후보로 바뀝니다.
PackageExecutionSnapshot
상품서비스가 전개 완료
사전 진단 v3필수
리프팅 시술 v5필수
진정 관리 v4선택됨
사후 점검 v2필수
→
AppointmentPlan Revision 1
예약서비스가 그대로 복사
PlannedTreatment4개
BLOCKING edge2개
MAY_SAME_VISIT1개
MUST_SEPARATE2개
→
방문별 예약 후보
정책·자원·희망일을 합성
방문 A · 사전 진단
PROPOSED · 전문의 + 상담실
방문 B · 리프팅 + 진정
같은 방문 · 장비 + 시술실 + 회복공간
방문 C · 사후 점검
시술 완료 후 7일 · 별도 방문
제안 생명주기 예시
PROPOSED→HELD→ 고객 동의CONFIRMED
진행 이후에는 미래 항목만 다시 계산합니다
완료된 사실과 기존 확정 예약을 보호하면서, 영향받은 미진행 항목만 새 방문 또는 제안으로 전개합니다.
완료된 진료항목
기존 productVersionId와 planRevisionId에 고정합니다. 상품 version 전환이나 재조정으로 다시 쓰지 않습니다.
COMPLETEDIMMUTABLE
부분 이행·남은 진료
완료된 item은 유지하고 남은 item attempt만 후속 방문의 새 AppointmentItem으로 생성합니다.
REMAINING ITEMNEW VISIT
장비 고장·휴진·일정 변경
기존 확정 예약을 조용히 덮지 않습니다. 새 제안과 고객 동의를 거쳐 영향받은 미래 예약만 교체합니다.
NEW PROPOSALCONSENTRECONFIRMED