Skip to content

[Worker][P0] E-9 업무용 4개 날짜·비자정보 확장 #84

Description

@hywznn

한 줄 목표

E-9 재계약·연장 판단에 필요한 날짜를 서로 다른 의미로 저장하고, 기존 Worker API에서 안전하게 조회·수정할 수 있게 합니다.

쉽게 말하면: “계약 종료일”, “취업활동 가능 종료일”, “체류 만료일”을 한 날짜로 뭉개지 않고 각각 관리합니다.

현재 문제

현재 Worker에는 contract_end_datestay_expiry_date만 있습니다. 3년 만료 Workflow에서는 고용허가와 취업활동기간의 기준일도 따로 필요하므로, 한 필드를 여러 의미로 사용하면 잘못된 D-day와 서류가 생성될 수 있습니다.

확정할 필드

필드 쉬운 의미
contract_end_date 현재 근로계약이 끝나는 날
employment_permit_end_date 사업장의 고용허가 관련 기준 종료일
employment_activity_end_date E-9 근로자가 취업활동할 수 있는 기간의 종료일
stay_expiry_date 체류자격이 만료되는 날
visa_type 체류자격 종류(예: E-9)

기존 display_name은 화면 표시용 이름으로 유지합니다. 법정 실명·여권번호·외국인등록번호는 이 이슈에서 일반 Worker 테이블에 추가하지 않고 #48 정책을 따릅니다.

API 영향

새 endpoint를 만들지 않고 기존 API를 확장합니다.

  • POST /api/v1/workers
  • GET /api/v1/workers
  • GET /api/v1/workers/{workerId}
  • PATCH /api/v1/workers/{workerId}

구현 범위

  • 다음 사용 가능한 Flyway version으로 Worker column 추가
  • Domain·JPA Entity·Command·DTO·Mapper에 필드 반영
  • 필드별 의미와 nullable 정책 확정
  • 날짜 관계 검증은 법적 의미를 임의 추정하지 않고 Workflow 규칙과 분리
  • 목록의 D-day 기준을 요청 목적에 맞게 명시
  • 기존 데이터가 migration 뒤에도 정상 조회되도록 호환성 확인
  • Agent Slot Resolver에서 사용할 canonical key 연결은 Knowledge 필드 카탈로그와 맞춤

완료 조건

  • 네 날짜가 서로 덮어쓰지 않고 독립적으로 저장·조회됩니다.
  • 생성·수정·단건·목록 응답의 필드명이 동일합니다.
  • 타 사업장 Worker 접근 차단과 optimistic lock이 유지됩니다.
  • null·날짜 경계·부분 수정·migration 통합 테스트가 있습니다.
  • Swagger에 각 날짜의 쉬운 설명과 예시가 표시됩니다.

이번 이슈에서 하지 않는 것

  • 법정 실명·연락처·신분증 번호 저장
  • 날짜를 AI가 임의 계산하거나 법률 판단하는 기능
  • 별도 Worker 마이크로서비스
  • 신규 Worker endpoint 추가

관계

Metadata

Metadata

Assignees

Labels

area:serverSpring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외priority:P0MVP 진행을 막는 최우선 핵심 작업security:privacy개인정보·접근권한·토큰·보안 영향이 있는 작업status:ready범위가 확정되어 바로 시작할 수 있는 작업type:feature사용자 또는 Agent가 사용하는 기능 개발

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions