Skip to content

데이터베이스 엔티티 레퍼런스

모두 BaseEntity를 상속하는 TypeORM 엔티티(UUID PK, createdAt, updatedAt, deletedAt).

⚠️ 이 개요는 낡았습니다. 아래 ER 다이어그램·카테고리는 초기 급여 중심 스냅샷(약 34개 엔티티)이며, 현재 저장소에는 113개 엔티티 파일(packages/database/src/entities/*.entity.ts)이 있습니다. 드라이브·AI·전자서명·연차사용촉진·Account·외근·급여대장 워크북(sheet) 등 도메인이 여기에 반영되어 있지 않습니다. 최신 테이블 전수는 영문 Database Schema Reference와 엔티티 파일을 참고하세요. (아래에 남은 SportsIncentiveFixedIncentive로 통합되어 더 이상 존재하지 않는 엔티티입니다.)

리팩토링 진행 중. 급여 관련 엔티티(OvertimeRecord, SportsIncentive, EducationSubsidy, LeaveRequest, ResignationRecord, YearEndSettlement)에서 계산된 금액 필드가 제거됩니다. 모든 금액은 AllowanceRecord / DeductionRecord에서만 관리됩니다. (제거예정) 표시 필드는 삭제되고, (추가예정) 표시 필드는 신규 추가됩니다. 타겟 스키마: Payroll Schema Refactor

엔티티 관계 개요

직원 관리

Employee

멀티 인증 지원이 포함된 핵심 직원 엔티티.

필드타입설명
emailstring고유 이메일 주소
firstNamestring이름
lastNamestring
employeeNumberstring고유 사번
phonestring전화번호
statusenumACTIVE, INACTIVE, ON_LEAVE, TERMINATED
authMethodenumEMAIL, PHONE, BIOMETRIC
organizationIdUUIDOrganization FK
positionstring직책
hireDateDate입사일
profilePicturestring프로필 이미지 파일명
isSystemAdminboolean시스템 관리자 플래그
passwordHashstringbcrypt 비밀번호 해시

Team

조직 구조의 기본 단위(팀). 팀은 계층 구조(상위 팀)를 가질 수 있습니다.

필드타입설명
namestring팀명
codestring고유 코드
descriptionstring팀 설명
parentTeamIdUUID상위 Team FK (계층)
leaderIdUUIDEmployee FK (팀 리더)
isActiveboolean활성 상태

TeamMember

필드타입설명
teamIdUUIDTeam FK
employeeIdUUIDEmployee FK
roleIdUUIDRole FK
joinedAtDate합류일
isActiveboolean활성 상태

Organization

필드타입설명
namestring조직명
codestring고유 조직 코드
legalNamestring법인명
timezonestring예: Asia/Seoul
localestring예: ko-KR
currencystring예: KRW
settingsjsonb근무시간, 급여 설정
subscriptionTierstring요금제 등급

EmploymentContract

필드타입설명
employeeIdUUIDEmployee FK
contractNumberstring계약 ID
contractTypeenumPERMANENT, TEMPORARY, PART_TIME
wageTypeenumMONTHLY, HOURLY, DAILY
baseSalarydecimal기본급
startDateDate계약 시작일
endDateDate계약 종료일 (nullable)

급여

PayrollRecord

필드타입설명
employeeIdUUIDEmployee FK
payrollNumberstring고유 급여 ID (예: PAY-202601-EMP001)
yearint급여 연도
monthint급여 월
baseSalarydecimal기본급
overtimePaydecimal연장근무 수당
nightDifferentialdecimal야간 차등
weekendDifferentialdecimal주말 차등
totalEarningsdecimal총 지급액
totalDeductionsdecimal총 공제액
netPaydecimal실수령액
totalWorkDaysint기간 내 근무일수
totalWorkHoursdecimal총 근무시간
statusenumDRAFT, CALCULATED, APPROVED, PAID, CANCELLED

PayrollDetail

필드타입설명
payrollRecordIdUUIDPayrollRecord FK
categoryenumBASE_SALARY, NIGHT_ALLOWANCE, MEAL_ALLOWANCE 등
itemNamestring한국어 항목명
amountdecimal금액
isDeductionboolean공제 여부

SalaryGrade

필드타입설명
categoryenumREHABILITATION, FUNCTIONAL, NURSING
gradeint호봉 번호
baseSalarydecimal호봉 기본급
hobongAmountdecimal호봉 금액
totalSalarydecimal총 급여
annualSalarydecimal연봉
effectiveYearint적용 연도

근태

Attendance

필드타입설명
employeeIdUUIDEmployee FK
dateDate근무일
checkIntimestamp출근 시간
checkOuttimestamp퇴근 시간
statusenumpresent, completed, absent, late, early_leave, on_leave, holiday
totalHoursdecimal총 근무시간
overtimeHoursdecimal연장근무 시간
gpsDatajsonb출퇴근 시 GPS 좌표

OvertimeRecord

원시 연장근무 관측 데이터. 급여 금액은 OvertimeRecordCalculator가 계산하여 AllowanceRecord에 기록합니다.

필드타입설명
employeeIdUUIDEmployee FK
workDateDate근무일
overtimeHoursdecimal시간
mealBreakHoursdecimal식사시간 (순근무시간 계산 시 차감)
categoryenumweekday, saturday, holiday, night
statusenumpending, approved, rejected (paid 제거 — AllowanceRecord.status로 이동)
approvedByUUIDEmployee FK
hourlyRatedecimal(제거예정)Contract.baseSalary / 209로 재계산
multiplierdecimal(제거예정) — 시트 컬럼/조직 파라미터 저장소에 설정
calculatedPaydecimal(제거예정)AllowanceRecord.amount에 보관

LeaveRequest

필드타입설명
employeeIdUUIDEmployee FK
leaveTypeenumannual, sick, personal, maternity, bereavement
startDateDate시작일
endDateDate종료일
reasonstring휴가 사유
statusenumpending, approved, rejected, cancelled
approvedByUUIDEmployee FK
rejectionReasonstring반려 사유
isHalfDayboolean반차 여부
halfDayPeriodenum, nullablemorning, afternoon
totalDaysdecimal(제거예정)startDate / endDate / isHalfDay에서 파생

간호 스케줄링

NurseProfile

필드타입설명
employeeIdUUIDEmployee FK
workTypeenumthree_shift, night_dedicated, day_dedicated, evening_dedicated
wardIdUUIDWard FK (병동)
annualLeaveDaysint연차 일수
maxConsecutiveNightsint최대 연속 야간 근무
isHeadNurseboolean수간호사 플래그

NurseSchedule

필드타입설명
wardIdUUIDWard FK
yearint근무표 연도
monthint근무표 월
statusenumdraft, ai_generated, editing, confirmed, published
settingsjsonb생성 설정

NurseScheduleEntry

필드타입설명
scheduleIdUUIDNurseSchedule FK
employeeIdUUIDEmployee FK
dateDate근무일
assignmentTypeenumday, evening, night, off, annual_leave, bereavement, education, unavailable

인증 및 권한

Role

필드타입설명
namestring역할명
codestring고유 코드
typeenumsystem, team, custom
isActiveboolean활성 플래그
descriptionstring역할 설명

Permission

필드타입설명
namestring권한명
resourcestring리소스명 (예: employee, payroll)
actionsstring[]허용 작업 (read, write, delete)
descriptionstring권한 설명