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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions