Skip to content

Surface auto-issued insurance result on rider-bike contract create #142

Description

@tkdgusqkr

Scope

라이더-차량 계약 등록 시 백엔드(Slice D)가 자동 발급한 보험 결과(`autoIssuedRiderInsuranceId` / `autoInsuranceSkipReason`)를 운영자가 어드민 화면에서 확인할 수 있게 한다.

Included:

  • ServiceOpsRiderBikeContract / 변환 함수 (`toRiderContract`) 에 `autoIssuedRiderInsuranceId` + `autoInsuranceSkipReason` 매핑.
  • frontend RiderContract 도메인 타입 확장.
  • 계약 생성 server action (`createRiderBikeContractAction`) 이 응답에서 결과를 추출 → query param 으로 다음 페이지에 전달.
  • 계약 등록 후 redirect 도착 페이지(라이더 상세 또는 계약 상세) 에서:
    • 자동 발급 성공 시 `success` flash + RiderInsurance ID 노출.
    • SKIP 토큰별 한글 안내 메시지 표시 (TEMPLATE_NOT_OPTED_IN / DEFAULT_INSURANCE_ITEM_MISSING / NOT_FOUND / DELETED / DISABLED / ALREADY_LINKED / DUPLICATE_ON_INSERT).
  • 계약 단건 상세 페이지 (`/contracts/{id}`) 에 자동 발급 보험 정보 row 노출.

Excluded:

  • 자동 발급된 보험을 별도 화면에서 편집/해지하는 흐름 (이미 라이더 보험 흐름으로 처리 가능).
  • 계약 종료 시 자동 보험 해지 (별도 슬라이스).
  • 계약 폼의 보험 입력 자체 (백엔드가 contract template 기반으로 자동 처리).

Acceptance criteria

  • 등록 응답에 `autoIssuedRiderInsuranceId` 가 있으면 어드민 화면이 그 결과를 안내한다.
  • SKIP 토큰별로 운영자가 이해할 수 있는 한글 메시지가 노출된다.
  • 계약 단건 상세 페이지에서도 자동 발급 보험 정보를 확인 가능.
  • 기존 계약 등록 흐름 회귀 없음.
  • `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 만 변경.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions