데이터 · 규칙 — 산후조리원 CRM 데모 「한달품」(가상)

화면 · 기능은 screens.md · requirements.md 가 이 문서의 엔티티 · 상태 이름을 그대로 쓴다. 값은 모두 가상이다.

1. 원칙

2. 엔티티

엔티티 핵심 필드 관계 · 메모
Branch 지점 id · 이름 · 수용 인원(40) · 객실 수 본사 1 : 지점 N
Room 객실 id · branchId · 호실 · 룸타입 · 상태 · 마지막 소독 시각 상태는 §3 RoomStatus
PricePlan 요금표 룸타입 × 기간 → 정가 · 당일계약 할인 · 이용금액 · 계약금 · 포함 마사지(산전/산후 회수) · 다둥이 추가 요금 지점별로 다를 수 있다
DiscountRule 할인 종류 · 룸타입별 금액 · 중복 가능 여부 당일계약 / 지인 · 제휴병원 · 재이용(서로 중복 불가) / 에스테틱 완불(중복 가능)
Customer 산모 id · 이름 · 휴대전화 · 생년월일 · 주소(선택) · 유입경로 · 재방문 횟수 · 동의(필수/선택) · 메모 1 : N 상담 · 예약. 재방문 산모는 이력이 이어진다
Guardian 보호자 이름 · 관계 · 연락처 · 직업(선택) 산모 1 : N
Consultation 상담 id · customerId · branchId · 단계(1차/2차/3차/예약) · 일시 · 상담자 · 방식(전화/방문/자가 입력) · 예정일 · 병원 · 분만 예정 형태 · 분만 횟수 · 희망 조리기간 · 내용 메모 단계 이동 이력 보존
Reservation 예약 · 계약 id · customerId · branchId · 룸타입 · 기간 · 예정 입실/퇴실일 · 상태 · 출산 여부 · 실제 분만일 · 요금 내역(줄 단위) · 총액 · 계약금 · 잔액 · 다둥이 여부 · 변경 이력 상태는 §3 ReservationStatus
Payment 결제 id · reservationId · 목적 · 상태 · 줄(수단 × 금액 · 카드사 · 승인번호(가상) · 현금영수증 여부) · 결제일 한 결제를 여러 수단으로 나눈다(혼합 결제)
Refund 해지 · 환불 id · reservationId · 시점(입소 전/후) · 귀책(소비자/사업자) · 입소예정일까지 일수 · 이용 박수 · 서비스 이용 차감 · 계산 결과 · 사유 · 환불 계좌(마스킹) · 상태 · 문서 계산은 §4.2
PrenatalCall 해피콜(산전) 일시 · 결과(출산 전/출산 완료) · 실제 분만일 · 확정 입실일 · 메모 · 담당자 예약 1 : N
Admission 입실 reservationId · 실제 입실일 · 객실 · 오리엔테이션 완료 · 수유 계획(모유/분유/혼합/단유) · 산모 초기 체크 · 신생아 인수 · 서류 묶음 체크인 단계별 완료 시각 · 담당자
Newborn 신생아 id · motherId · 태명/이름 · 성별 · 출생 일시 · 재태기간(주+일) · 출생 체중 · 분만형태 · 태어난 곳 · 검사/접종 완료(5종) · 특이사항 · 신체 사정(체크 14항목) 다태아면 산모 1 : N
NewbornCareEvent 영유아 기록(사건) newbornId · 시각 · 수유 종류(직모유 분 / 병모유 ml / 분유 준비 ml · 먹은 ml) · 소변 · 대변 · 체온 · 구토 · 기록자 24시간 격자의 한 칸
NewbornDaily 영유아 일 요약 newbornId · 날짜 · 입실 n일째 · 출생 n일째 · 체중 · 전일 대비 · 수유 합계 · 배설 합계(계산)
NewbornShiftCheck 근무조 점검 newbornId · 날짜 · 근무조(D/E/N) · 호흡기 · 결막염 · 배꼽/피부 · 황달 수치(두 부위) · 그 밖의 증상 · 담당자 · 확인자 근무조마다 확인 서명
MotherVital 산모 바이탈 motherId · 날짜 · 시간대(오전/오후) · 출혈 · 체온 · 혈압(수축/이완) · 유방통증 · 부종 · 담당자 · 확인자 1일 2회
MotherNote 산모 특이사항 재원 중 이상 증상 · 기왕력 · 주의 관찰 · 입실/퇴실 시 정서상태
CareLogEntry 아가 · 산모 일지 대상 · 날짜 · 내용(제대 탈락 · 정기검진 외출 등) 자유 기록
AestheticService 관리 메뉴 계열(아로마 · 건식 · 특수 · 가슴/울혈 · 서비스) · 시간(40/60/90/120분) · 단가
AestheticPackage 코스 등급(5종) · 정상가 · 할인율 · 구성(메뉴 × 회수) · 결제 시점별 보너스
SessionBucket 회차 잔량 customerId · 출처(계약 포함 서비스 산전/산후 · 구매 코스 · 보너스) · 메뉴 · 총 회수 · 사용 · 만료 규칙 산전 서비스는 입실 전 미사용 시 소멸
AestheticSession 관리 예약 id · customerId · 일시 · 관리사 · 방 · 메뉴 · 분 · 차감 버킷 · 상태 퇴실 뒤 고객도 예약한다
MessageTemplate 메시지 템플릿 id · 트리거 · 채널(SMS/알림톡) · 본문(변수 {산모명} {예정일} {지점} …) 지점별 사본 가능
Audience 발송 그룹 조건(예정일 월 · 예약 상태 · 지점 · 산전 서비스 잔량 …) · 미리보기 인원
MessageSend 발송 기록(모의) 템플릿 · 그룹 · 대상 수 · 채널 · 상태(모의 발송) · 시각 · 실행자 실제 발송 없음
WorkDiary 업무일지 branchId · 날짜 · 자동 집계 값(§4.4) · 근무표 · 금일 예약/입실/퇴실 목록 · 당월 매출 누계 · 비고 · 작성자 · 본사 열람 확인 결재 대신 「열람 확인」
Staff 직원 id · 이름 · 역할 · 지점 · 고용 형태(정규/파트) · 입사/퇴사일 · 상태 · 권한 범위
ShiftAssignment 근무 staffId · 날짜 · 근무조(D/M/E/N/청소/주방)
InventoryItem 재고 품목 · 분류(신생아 · 산모 · 소모품) · 수량 · 기준 수량 · 단위 목록 수준
Document 서식 · 동의 종류(§3 DocumentKind) · 대상 · 서명자 · 서명 시각 · 서명 이미지(가상) · 첨부(스캔)
SelfInputSession 자가 입력 토큰 · 목적(상담신청서/입실 서류) · 상태 · 만료 · 연결 산모 QR · 태블릿
Aftercare 사후 관리 해피콜 일자 · 만족도(1~5) · 추천 의향 · 선택/불편 사유 · 건의/불만 · 후속 조치 · 담당
WaitlistEntry 대기 customerId · 희망 지점 · 기간 · 룸타입 · 등록일 · 추천한 다른 지점 · 결과 만실일 때
MessageDrip 주차별 안내 임신 주차 · 템플릿 · 사용 여부 · 지점 예정일로 대상 계산
InspectionRecord 소독 · 점검 종류(소독 대장 · 시설 점검표) · 일자 · 구역 · 방법 · 항목 결과 · 담당 출력
AuditLog 감사 기록 시각 · 직원 · 대상 · 동작(상태 전환 · 결제 · 환불 · 서명 · 삭제 · 복원) · 전후 요약 삭제는 소프트 삭제(deletedAt · deletedBy)

3. 열거형

이름 값
ConsultStage 1차 · 2차 · 3차 · 예약 · 보류 · 이탈
ReservationStatus 상담 · 가계약 · 예약완료 · 입실중 · 퇴실완료 · 취소 · 해지
BirthStatus 출산 전 · 출산 완료
RoomType 디럭스 · VIP
StayPlan 6박7일 · 9박10일 · 13박14일 · 20박21일 · 27박28일
RoomStatus 사용 가능 · 배정됨(입실 예정) · 사용 중 · 정리 · 소독 필요 · 점검
DeliveryType 자연분만 · 제왕절개
FeedingPlan 모유 · 분유 · 혼합 · 단유
FeedingKind 직모유(분) · 병모유(ml) · 분유(ml)
Shift D · M · E · N · 청소 · 주방
PaymentPurpose 계약금 · 잔금 · 추가비용 · 에스테틱 코스 · 단품
PaymentMethod 카드 · 현금(현금영수증) · 계좌이체 · 간편결제 · 지역화폐 · 정부 바우처 · 지자체 산후조리 지원 · 기타
PaymentStatus 가결제 · 결제완료 · 취소 · 환불
RefundTiming · Fault 입소 전 · 입소 후 / 소비자 · 사업자
RefundStatus 요청 · 계산 완료 · 원장 확인 · 지급 완료(모의)
SessionStatus 예약 · 완료 · 노쇼 · 취소
ReferralChannel SNS · 지역 카페 · 공식 홈페이지 · 산모 교실 · 지인 소개 · 병원 추천 · 리플렛/현수막 · 재입실 · 맘 커뮤니티 · 블로그
MessageTrigger 상담 후 · 예약 확정 · 입실 60일 전(산전 관리 안내) · 입실 30일 전(준비물) · 출산 임박 확인 · 입실 당일 · 퇴실 전날 · 퇴실 7일 뒤(해피콜) · 수동
Role 대표(본사) · 원장 · 상담실장 · 간호사 · 신생아실 · 에스테틱 · 모유실장
EmploymentType 정규 · 파트타임
DocumentKind 상담신청서 · 예약확인서 · 입실신청서 · 개인정보 동의(필수/선택 분리) · 감염 · 안전 교육 확인서 · 신생아 신체 사정 · 퇴실 교육 체크리스트 · 시술 동의서 · 환불신청서 · 입실확인서(연말정산)

4. 규칙

4.1 요금

정가        = PricePlan(룸타입, 기간).정가
할인        = 당일계약(상담 당일 계약일 때)
            + max(지인 · 제휴병원 · 재이용 중 하나)        ← 서로 중복 불가
            + 에스테틱 완불(코스 5회 이상 완납, 룸타입별)  ← 중복 가능
추가        = 다둥이 추가 요금(기간별) + 보호자 식사 × 회수 + 기타
총액        = 정가 − 할인 + 추가
계약금      = PricePlan.계약금(총액의 10% 기준 정액표)
잔액        = 총액 − 받은 금액 합계

화면은 줄 단위 내역(정가 · 할인 각각 · 추가 · 총액)을 보여 준다 — 종이 상담신청서에서 총금액 아래 할인을 손으로 빼 적던 일을 대신한다. 상담 때 안내한 최종 금액은 「확정금액」으로 예약에 고정되고, 이후 변경은 내역 줄과 변경 이력으로 남는다. 임신 주수는 예정일 − 280일을 수태 기준으로 기준 시각까지 센 값이다(표시 전용 계산값). 기간을 바꾸면 박수로 다시 계산하고, 위약금 10% 를 줄로 더한다.

데모 요금표(가상 값, 만 원):

기간 디럭스 정가 당일 할인 이용금액 계약금 VIP 정가 당일 할인 이용금액 계약금 서비스 마사지(산전/산후)
6박7일 350 −40 310 30 520 −110 410 40 1 / 1
9박10일 440 −50 390 40 650 −140 510 50 1 / 1
13박14일 550 −50 500 50 800 −160 640 60 2 / 2
20박21일 820 −70 750 70 1,200 −240 960 90 2 / 3
27박28일 1,080 −90 990 90 1,580 −310 1,270 120 3 / 3

입실 제한: 재태기간 37주 이하 또는 출생 체중 2.5kg 이하 신생아는 입실 불가 — 예약 화면에 경고를 띄우고, 이 사유의 취소는 계약금 전액 환불로 분기한다.

4.2 해지 · 환불

종이 환불신청서의 「환불 규정 안내」 표(소비자분쟁해결기준 형식)를 그대로 규칙으로 옮긴다.

시점 귀책 조건 환급
입소 전 사업자 — 계약금 환급 + 계약금의 100% 배상
입소 전 소비자 계약 후 24시간 이내 또는 입소예정일 91일 전 이전 계약금 전액
입소 전 소비자 61~90일 전 계약금의 60%
입소 전 소비자 31~60일 전 계약금의 30%
입소 전 소비자 11~30일 전 계약금의 15%
입소 전 소비자 10일 전 이후 환급 없음
입소 후 사업자 — 총액 − 이용 기간 요금 + 총액의 10% 배상
입소 후 소비자 — 총액 − (이용 기간 요금 + 총액의 10%)

4.3 마사지 회차

4.4 업무일지 자동 집계

칸 정의
당월예약 · 당월해약 · 당월상담 그 달에 상태가 예약완료 · 해지가 된 건수, 그 달 상담 건수
당일입실 · 당월입실 · 당월입실예정 그날/그 달 입실한 산모 수, 그 달 남은 입실 예정 수
현입실자 · 신생아 수 기준 시각에 입실중인 산모 · 신생아 수
월별 예약자 예정 입실월별 예약완료 건수(1~12월) + 합계
근무표 그날 ShiftAssignment — 근무조별 이름 · 인원
금일 예약 · 입실 · 퇴실 목록 + 결제 수단별 금액 · 잔액 · 미납금
당월 매출 누계 그 달 결제완료 − 환불

마감 기준(당일 17시)은 지점 설정이다. 작성자가 비고를 더하고 제출하면, 본사는 원본을 다시 정리하지 않고 그대로 열람하고 확인 표시를 한다.

4.5 통계

5. 데이터 분류 (S-18)

분류 예 언어를 바꾸면
A 업무 데이터 ID · 지점 · 호실 · 상태 · 날짜 · 시각 · 금액 · 박수 · 회차 · 바이탈/수유 수치 · 만족도 점수 · 권한 그대로(형식만 로케일)
B 표시 데이터 산모 · 보호자 · 직원 · 아기 이름(태명 포함) · 병원 이름 · 상담 메모 · 일지 문장 · 템플릿 예문 co_demo_world 투영으로 다시 만든다
C 사용자 입력 방문자가 입력한 상담신청서 · 메모 · 서명 · 이름 수정 그대로 우선

예외: 환불 규정 · 개인정보 동의처럼 법정 성격의 문구는 화면 언어로 번역해 보여 주되, 한국어 원문 보기를 함께 둔다(docs/locale-data.md 에 필드별로 기록 — 구현 단계).

6. 데모 세계(시드)

항목 값
지점 3곳 — 솔빛점(본점) · 물결점 · 노을점, 지점마다 수용 40명(디럭스 30 · VIP 10)
재실 지점마다 산모 약 30명 · 신생아 31명(쌍둥이 1쌍), 입실 1~13일째에 고르게 분포
예약 앞으로 6개월, 지점마다 월 20~28건
상담 지점마다 진행 중 20건 내외(1차 · 2차 · 3차 · 보류)
직원 지점마다 24명 내외(근무조 D 5 · M 2 · E 5 · N 5, 청소 2, 주방 2, 원장 · 상담 2 · 에스테틱 3 · 모유 1)
기록 재실 산모 · 신생아의 입실일부터 기준 시각까지 시간별 기록(결정적 생성)
이름 co_faker 로 만든 가상 이름