Files
sam-docs/system/database/hr.md
김보곤 6959fd8fcf docs: [hr] 연봉이력 삭제 기능 문서화
- rules/employee-api.md: 연봉 API 엔드포인트 및 데이터 구조 추가
- system/database/hr.md: salary_info JSON 구조 추가
- dev/changes/20260311_salary_history_delete.md: 변경 이력 생성
- INDEX.md: 변경 이력 등록
2026-03-11 16:49:22 +09:00

2.6 KiB

인사 / HR 도메인

모델 수: HR 관련 (Tenants 하위) + Interview 5 핵심: 급여, 근태, 휴가, 대출, 면접 API 엔드포인트: 141개 (hr.php)


주요 테이블

급여 / 근무

테이블 모델 역할
payrolls Payroll 급여 마스터
salaries Salary 급여 항목
attendances Attendance 근태 기록
attendance_requests AttendanceRequest 근태 요청
leaves Leave 휴가 사용 기록
leave_policies LeavePolicy 휴가 정책
labors Labor 노무비

대출

테이블 모델 역할
loans Loan 직원 대출

면접 (Interview)

테이블 모델 역할
interview_templates InterviewTemplate 면접 양식
interview_sessions InterviewSession 면접 세션
interview_questions InterviewQuestion 면접 질문
interview_categories InterviewCategory 면접 카테고리
interview_responses InterviewResponse 면접 답변

관계 구조

TenantUserProfile (직원)
  ├─ hasMany Payroll
  ├─ hasMany Attendance
  ├─ hasMany Leave
  ├─ hasMany Loan
  └─ hasMany AttendanceRequest

LeavePolicy
  └─ belongsTo Tenant (테넌트별 휴가 정책)

InterviewTemplate
  ├─ hasMany InterviewCategory
  │   └─ hasMany InterviewQuestion
  └─ hasMany InterviewSession
      └─ hasMany InterviewResponse

연봉 정보 (salary_info)

연봉 정보는 별도 테이블이 아닌 tenant_user_profiles.json_extra.salary_info에 JSON으로 저장한다.

TenantUserProfile.json_extra
  └─ salary_info
       ├─ annual_salary (현재 연봉)
       ├─ effective_date (적용일)
       ├─ notes (비고)
       └─ history[] (변경 이력 배열)
            ├─ annual_salary
            ├─ effective_date
            ├─ notes
            ├─ recorded_at
            └─ recorded_by
  • MNG Employee 모델의 getSalaryInfo() / setSalaryInfo() 메서드로 접근
  • 연봉 저장 시 이전 값이 history에 자동 추가
  • 이력 개별 삭제 가능 (배열 인덱스 기반)
  • 접근 권한: 특정 사용자만 허용 (EmployeeSalaryController)

특이사항

  • HR 모델은 대부분 Tenants/ 디렉토리 하위
  • 직원 정보는 TenantUserProfile (테넌트별 프로필)
  • 면접 모델은 별도 Interview/ 도메인으로 분리
  • 급여 관련 최근 추가: long_term_care 컬럼 (2026-02-27)
  • 연봉 정보는 json_extra 내부에 저장 (별도 테이블 없음, 2026-03-11)