직원 상태 정의
- 재직
- 정의 : 현재 근무 중인 상태
- 해당 계정으로 로그인 가은
- 비활성
- 정의 : 계정 생성 및 근로계약서가 작성되었지만, 실제 근무 시작 전 상태
- 해당 계정으로 로그인 불가능
- 휴직
- 정의 : 근무를 일시적으로 중단한 상태
- 해당 계정으로 로그인 불가능
- 퇴직
- 정의 : 근로관계가 종료된 상태
- 해당 계정으로 로그인 불가능
- 퇴직 후 해당 계정 삭제 가능
- 삭제 시 안내 필요
⚠️ 구현 현황 · 하드닝 후보 (2026-08-13)
CODE가 진실이에요.
"비활성/퇴직 상태만 삭제" 규칙이 서버에서 미강제 [기능 수정 후보]
- 문서 기술: 삭제는 비활성(INACTIVE)/퇴직(TERMINATED) 상태에서만 허용하고, 재직/휴직 삭제는 차단(관리 화면
page.md[삭제], "휴직 또는 재직 상태에서는 직원을 삭제할 수 없어요"). - 실제 구현:
employee.delete(packages/api/src/routers/employee.router.ts:1089)는 존재 여부 + owner 보호만 확인한 뒤, 상태와 무관하게 soft-delete 하면서status: TERMINATED를 강제로 세팅해요(employee.router.ts:1118-1119).status ∈ {INACTIVE, TERMINATED}가드가 없어요. - 영향: 삭제 상태 규칙이 UI 전용이에요.
employee:delete권한 보유자는 API 로 재직/휴직 직원도 삭제할 수 있고, 살아있는 직원이 조용히 TERMINATED + soft-delete 돼요. - 참고: 같은 라우터의
"Employee not found"(employee.router.ts:1103)는 영문 throw 메시지로 한글 해요체 규칙과 어긋나요.