Skip to content

feat: 전체 업무 유형과 사업장 공통 대상 확장 - #103

Merged
krestar merged 8 commits into
mainfrom
feat/85-task-target-types
Aug 7, 2026
Merged

feat: 전체 업무 유형과 사업장 공통 대상 확장#103
krestar merged 8 commits into
mainfrom
feat/85-task-target-types

Conversation

@hywznn

@hywznn hywznn commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

왜 필요한가요?

기존 세 가지 연장 Task만 저장할 수 있던 구조를 전체 Intent 업무 유형으로 확장하고, 아직 근로자가 정해지지 않은 사업장 공통 업무도 안전하게 저장합니다.

Refs #85

무엇이 바뀌나요?

  • DOCUMENT_REQUEST, WORKER_ONBOARDING, PAYROLL_EXPLANATION, EMPLOYMENT_CHANGE, WORK_INSTRUCTION Task 유형을 추가했습니다.
  • target_type = WORKER | COMPANY 모델을 추가했습니다.
  • WORKER 업무는 기존처럼 worker_idcase_id가 필요합니다.
  • COMPANY 업무는 worker_idcase_id 없이 독립 Task로 저장하며 Workflow Case를 만들지 않습니다.
  • 기존 요청에서 target_type을 생략하면 worker_id 유무로 호환 처리합니다.
  • 목록 API에 target_typesource 필터를 추가했습니다.
  • FILE_IMPORT, WORKER_RESPONSE 출처를 추가했습니다.
  • Server가 사용하는 Knowledge projection에 canonical Workflow 5개를 연결했습니다.
  • 사업장 공통 업무에 Worker Link나 근로자 문서가 잘못 연결되지 않도록 방어했습니다.
  • Flyway V28에서 nullable FK와 대상 조합 CHECK 제약을 추가했습니다.

기존 구조 보호

  • 기존 연장 Task와 AI 후보 기반 세 Task 생성 흐름을 유지합니다.
  • COMPANY Task는 [Case][P0] Case·Workflow Snapshot·업무함 Projection 구현 #83 Case 구조에 억지로 포함하지 않습니다.
  • Knowledge 원본 저장소는 수정하지 않고 Server가 사용하는 projection만 확장했습니다.
  • 자동 승인·자동 발송·새 Task 상태는 추가하지 않았습니다.

검증

  • ./gradlew clean test — BUILD SUCCESSFUL
  • 전체 canonical Task 유형 생성 검증
  • WORKER·COMPANY 대상 조합과 조회 필터 검증
  • OpenAPI 및 DB CHECK 제약 검증

⚠️ Flyway 예약 및 병합 조건

  • 현재 main, 열린 PR, 원격 브랜치에 V28을 사용하는 다른 작업이 없음을 확인했습니다.
  • 이 PR이 V28을 사용합니다.
  • 병합 직전에 최신 main에서 V28 중복 여부를 다시 확인합니다.
  • GitHub CI와 PostgreSQL 전용 Migration·Tenant·RLS 검증을 통과한 뒤 병합합니다.

hywznn added 3 commits August 6, 2026 19:14
전체 Intent 업무 유형과 FILE_IMPORT·WORKER_RESPONSE 출처를 추가합니다. 근로자 업무와 사업장 공통 업무를 구분하고 DB 제약조건으로 잘못된 대상 조합을 차단합니다.
근로자 없이 생성하는 사업장 공통 업무를 지원하고 대상·출처 필터를 제공합니다. 기존 근로자 업무는 target_type 생략 시 그대로 WORKER로 처리하며 Worker Link와 문서 조회의 null 안전성도 보강합니다.
전체 canonical 업무 유형 생성, 사업장 공통 업무, 잘못된 대상 조합, 조회 필터와 OpenAPI 계약을 검증합니다. PostgreSQL에서는 nullable FK와 대상 CHECK 제약도 확인합니다.
@hywznn
hywznn requested review from chaeliki and krestar August 6, 2026 10:23
krestar
krestar previously approved these changes Aug 6, 2026

@krestar krestar left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전체 Task 유형 확장과 WORKER/COMPANY 대상 규칙이 API, 도메인, 영속성, DB 제약까지 일관되게 반영된 점 확인했습니다.
기존 WORKER 흐름의 호환성을 유지하면서 COMPANY Task의 Case 생성 및 Worker Link,문서 오연결도 잘 방어되어 있습니다.
CI, 통합 테스트도 통과해 승인합니다.

hywznn and others added 3 commits August 7, 2026 10:24
채린님 작업의 V28과 충돌하지 않도록 #103의 Task 유형 및 대상 제약 마이그레이션을 V29로 복구했습니다. Java 코드와 PostgreSQL 검증이 기대하는 target_type 스키마를 다시 연결합니다.
@hywznn
hywznn marked this pull request as ready for review August 7, 2026 04:20
V28을 사용하는 다른 원격 작업이 없음을 확인하고 #103의 Task 유형·대상 확장 마이그레이션을 V29에서 V28로 옮겼습니다. SQL 동작은 변경하지 않았습니다.
@hywznn
hywznn requested a review from krestar August 7, 2026 04:33

@krestar krestar left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

migration V28 확인했습니다

@krestar
krestar merged commit 21a2516 into main Aug 7, 2026
4 checks passed
@krestar
krestar deleted the feat/85-task-target-types branch August 7, 2026 04:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants