Scope
라이더 등록 폼에 "초기 보험 (선택)" 입력 섹션을 추가해 운영자가 한 화면에서 라이더 등록과 첫 보험 연결까지 함께 입력 가능하게 한다. 입력하지 않으면 기존처럼 라이더만 (또는 라이더+교육만) 생성.
Included:
- RiderForm 에 "초기 보험 (선택)" fieldset 추가 — 보험 항목 select / 시작일 / 종료일 / 메모.
- 등록 페이지가 보험 catalog 미리 fetch (loadInsuranceOptions 재사용) → 폼에 prop 으로 전달.
- createRiderAction 의 단계: 라이더 → (선택) 교육 → (선택) 보험. 각 단계 실패는 이전 단계를 되돌리지 않음.
- redirect status 가 결과 조합을 한글로 표시 (라이더만 / 라이더+교육 / 라이더+보험 / 셋 다 / 일부 실패).
- 보험 항목이 비어있으면 (catalog 비었거나 미선택) 보험 단계 skip.
Excluded:
- 다중 보험 동시 등록 (메인 + 부가).
- 보험 시작/종료일 외의 추가 메타 (riderBikeContractId 같은) 입력 — 라이더 등록 시점에는 contract 가 아직 없음.
- 라이더 수정 폼 통합.
Acceptance criteria
- 폼이 보험 입력 섹션을 노출하되 모든 보험 필드는 비어있어도 제출 가능.
- 보험 항목 select 가 비어있으면 (catalog 미구성) 폼은 그대로 동작 + 안내 노출.
- 보험 항목만 선택하고 날짜는 비워도 등록 가능 (백엔드가 NULL 허용).
- 라이더 등록 후 redirect 시 status 가 결과 조합에 맞게 표시.
- `npm run lint` / `npx tsc --noEmit` / `npm run test:service-ops` / `npm run build` 통과.
Trace
Concurrent work gate
Decision: allowed-with-non-overlap
Evidence:
- Open target issues: none.
- Open target PRs: none.
- Active branches: dev, main.
Reason: front-admin-web 만 변경.
Scope
라이더 등록 폼에 "초기 보험 (선택)" 입력 섹션을 추가해 운영자가 한 화면에서 라이더 등록과 첫 보험 연결까지 함께 입력 가능하게 한다. 입력하지 않으면 기존처럼 라이더만 (또는 라이더+교육만) 생성.
Included:
Excluded:
Acceptance criteria
Trace
Concurrent work gate
Decision: allowed-with-non-overlap
Evidence:
Reason: front-admin-web 만 변경.