Skip to content

[Feature] 근로자 목록/상세 실제 API 연동 (Worker) #152

Description

@BcKmini

배경

fowoco/server에 Worker API가 실제로 구현·병합됐다 (#5). WorkerListPage/WorkerDetailPage는 지금 정적 demo 데이터(workerListData.ts)를 쓴다.

실제 서버 API

GET   /api/v1/workers            (검색·페이지네이션)
POST  /api/v1/workers            (등록)
GET   /api/v1/workers/{workerId} (상세)
PATCH /api/v1/workers/{workerId} (부분 수정, expected_version 필요)

WorkerResponse 필드: worker_id, company_id, display_name, nationality_code, preferred_language, work_status, stay_expiry_date, contract_start_date, contract_end_date, created_at, updated_at, version

주의할 점

  • phone, employee_id가 응답에 없다. 개인정보 분리 원칙에 따라 worker_sensitive_data로 별도 관리되며, 그 API(#48 근로자 민감정보 분리 저장·접근 제어)는 아직 서버에 구현 전이다. 지금 WorkerListPage/WorkerDetailPage가 보여주는 전화번호·사번은 #48 없이는 채울 수 없다 — 우선 해당 필드를 숨기거나 "준비 중"으로 표시하고, #48 완료 후 별도 연동한다.
  • PATCH는 낙관적 잠금(expected_version)을 요구한다. 최신 WorkerResponse.version을 반드시 함께 보내야 하고, 오래된 값이면 409.
  • deadlineDays/deadlineLabel(기한 임박 표시)은 서버 응답에 없다 — stay_expiry_date로 클라이언트에서 직접 계산해야 한다 (이미 있는 getUrgencyTier 유틸 재사용 가능).

완료 조건

  • WorkerListPageGET /api/v1/workers로 실제 목록을 불러옴 (loading/empty/error 상태 포함, useApiQuery 재사용)
  • WorkerDetailPageGET /api/v1/workers/{id}로 실제 상세를 불러옴
  • 전화번호·사번 필드는 #48 완료 전까지 숨김 또는 "준비 중" 표시
  • 체류만료일 기반 기한 임박 표시가 실제 데이터로 동작
  • 테스트 작성

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions