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와 엔티티 파일을 참고하세요. (아래에 남은 SportsIncentive는 FixedIncentive로 통합되어 더 이상 존재하지 않는 엔티티입니다.)

리팩토링 진행 중. 급여 관련 엔티티(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권한 설명