Repository navigation
[Worker][P0] E-9 업무용 4개 날짜·비자정보 확장 #84
Copy link
Copy link
Closed
Labels
area:serverSpring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외Spring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외priority:P0MVP 진행을 막는 최우선 핵심 작업MVP 진행을 막는 최우선 핵심 작업security:privacy개인정보·접근권한·토큰·보안 영향이 있는 작업개인정보·접근권한·토큰·보안 영향이 있는 작업type:feature사용자 또는 Agent가 사용하는 기능 개발사용자 또는 Agent가 사용하는 기능 개발
Description
한 줄 목표
E-9 재계약·연장 판단에 필요한 날짜를 서로 다른 의미로 저장하고, 기존 Worker API에서 안전하게 조회·수정할 수 있게 합니다.
쉽게 말하면: “계약 종료일”, “취업활동 가능 종료일”, “체류 만료일”을 한 날짜로 뭉개지 않고 각각 관리합니다.
현재 문제
현재 Worker에는 contract_end_date와 stay_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 추가
관계
- Parent: [EPIC] FOWOCO Server Roadmap · Controlled AI Workflow MVP #2
- 기존 Worker API: [Worker] 근로자 기본정보·서류 메타데이터 API 구현 #5
- 개인정보 정책: [Worker] 근로자 민감정보(WorkerSensitiveData) 분리 저장·접근 제어 구현 #48
- Slot Resolver: [AI Run][P0] Agent 요청 Slot 조회·재호출 오케스트레이션 구현 #74
- Case·Workflow: [Task Workflow] 업무카드·체크리스트·상태 전이 구현 #6, [Case][P0] Case·Workflow Snapshot·업무함 Projection 구현 #83
- 대표 검증: [E2E] 제품 대표 복합 요청 시나리오·데모 런북 완성 #10
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:serverSpring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외Spring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외priority:P0MVP 진행을 막는 최우선 핵심 작업MVP 진행을 막는 최우선 핵심 작업security:privacy개인정보·접근권한·토큰·보안 영향이 있는 작업개인정보·접근권한·토큰·보안 영향이 있는 작업type:feature사용자 또는 Agent가 사용하는 기능 개발사용자 또는 Agent가 사용하는 기능 개발
Activity