Skip to content

Admin web rider education records UI #136

Description

@tkdgusqkr

Scope

라이더 상세 페이지에 교육 이력 섹션을 노출하고, 새 교육 이력 등록 페이지(`/riders/{slug}/education-records/new`) 를 추가한다. 백엔드 Slice C 의 자연스러운 어드민 UI 마무리.

Included:

  • service-ops-api 클라이언트에 RiderEducationRecord 타입 + 메소드 (`listRiderEducationRecords`, `createRiderEducationRecord`, `deleteRiderEducationRecord`).
  • 라이더 상세 페이지 (`/riders/{slug}`) 에 `교육 이력` 섹션 추가:
    • 활성 교육 이력 목록 (최근 정렬, 최대 5건 표시).
    • 각 행에 교육 종류 / 완료일 / 만료일 / 수료증 번호 / 발급 기관 노출.
    • 만료된 행은 `만료` 뱃지 표시.
    • `교육 이력 등록` 버튼.
    • `전체 보기` 링크 (옵션, 후속).
  • 새 페이지 `/riders/{slug}/education-records/new` — 등록 폼:
    • 교육 종류 (ONLINE / OFFLINE) 라디오.
    • 과정명, 완료일, 만료일, 수료증 번호, 발급 기관, 증빙 URL, 메모.
    • server action 으로 `POST /api/v1/rider-education-records` 호출.
  • 라이더 상세 페이지에서 라이더 자체의 education summary (educationCompleted/latestEducationType/educationExpired) 도 노출.

Excluded:

  • 교육 이력 단건 상세/수정/삭제 페이지 (후속 슬라이스).
  • 라이더 등록/수정 폼 자체에 교육 입력 통합 (운영자가 라이더 등록 후 별도 단계로 등록).
  • 라이더 페이지(`/riders`) 의 교육 상태 컬럼 추가 (별도 작업).
  • 정부 보고서 PDF 생성.

Acceptance criteria

  • 라이더 상세 페이지에 교육 이력 섹션이 노출된다.
  • 활성 교육 record 가 0건이면 `등록된 교육 이력 없음` 안내가 보인다.
  • `교육 이력 등록` 버튼이 `/riders/{slug}/education-records/new` 로 이동한다.
  • 등록 폼이 정상 제출되면 라이더 상세로 돌아오고 새 행이 노출된다.
  • 백엔드 미구성 / 세션 없음 시 mock 안내 노출.
  • `npm run lint` / `npx tsc --noEmit` / `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