/**
 * 근무관리 타입 정의 (PDF 56페이지 기준)
 */

// 고용 형태
export type EmploymentType = 'regular' | 'contract' | 'dispatch' | 'outsourcing' | 'partTime';

export const EMPLOYMENT_TYPE_LABELS: Record<EmploymentType, string> = {
  regular: '정규직',
  contract: '계약직',
  dispatch: '파견직',
  outsourcing: '용역직',
  partTime: '시간제 근로자',
};

// 요일
export type DayOfWeek = 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun';

export const DAY_OF_WEEK_LABELS: Record<DayOfWeek, string> = {
  mon: '월',
  tue: '화',
  wed: '수',
  thu: '목',
  fri: '금',
  sat: '토',
  sun: '일',
};

// 근무 설정
export interface WorkScheduleSettings {
  employmentType: EmploymentType;
  workDays: DayOfWeek[]; // 주간 근무일
  workStartTime: string; // 출근 시간 (HH:mm)
  workEndTime: string; // 퇴근 시간 (HH:mm)
  weeklyWorkHours: number; // 주당 기준 근로시간
  weeklyOvertimeHours: number; // 주당 연장 근로시간
  breakStartTime: string; // 휴게 시작 시간 (HH:mm)
  breakEndTime: string; // 휴게 종료 시간 (HH:mm)
}

// 기본 설정값
export const DEFAULT_WORK_SCHEDULE: WorkScheduleSettings = {
  employmentType: 'regular',
  workDays: ['mon', 'tue', 'wed', 'thu', 'fri'],
  workStartTime: '09:00',
  workEndTime: '18:00',
  weeklyWorkHours: 40,
  weeklyOvertimeHours: 12,
  breakStartTime: '12:00',
  breakEndTime: '13:00',
};
