// 작업인력현황 타입 정의

// 작업인력 항목
export interface WorkerStatus {
  id: string;
  partnerName: string; // 거래처
  siteName: string; // 현장
  category: 'foreman' | 'worker'; // 구분: 작업반장/작업인
  department: string; // 부서
  workerName: string; // 이름
  baseDate: string; // 기준일
  checkInTime: string | null; // 출근
  checkOutTime: string | null; // 퇴근
  constructionNumber: string; // 시공번호
  laborCost: number; // 노임
  status: 'absent' | 'checked_in' | 'checked_out' | 'early_leave' | 'other'; // 상태
  contractStatus: 'all_contract' | 'pending' | 'completed'; // 계약상태
  createdAt: string;
  updatedAt: string;
}

// 통계
export interface WorkerStatusStats {
  allContract: number; // 전체 계약
  pending: number; // 계약대기
  completed: number; // 계약완료
}

// 구분 옵션
export const WORKER_CATEGORY_OPTIONS = [
  { value: 'all', label: '전체' },
  { value: 'foreman', label: '작업반장' },
  { value: 'worker', label: '작업인' },
] as const;

export const WORKER_CATEGORY_LABELS: Record<string, string> = {
  foreman: '작업반장',
  worker: '작업인',
};

// 상태 옵션
export const WORKER_STATUS_OPTIONS = [
  { value: 'all', label: '전체' },
  { value: 'absent', label: '미출근' },
  { value: 'checked_in', label: '출근' },
  { value: 'checked_out', label: '퇴근' },
  { value: 'early_leave', label: '조퇴' },
  { value: 'other', label: '기타' },
] as const;

export const WORKER_STATUS_LABELS: Record<string, string> = {
  absent: '미출근',
  checked_in: '출근',
  checked_out: '퇴근',
  early_leave: '조퇴',
  other: '기타',
};

export const WORKER_STATUS_STYLES: Record<string, string> = {
  absent: 'bg-gray-100 text-gray-700',
  checked_in: 'bg-green-100 text-green-700',
  checked_out: 'bg-blue-100 text-blue-700',
  early_leave: 'bg-yellow-100 text-yellow-700',
  other: 'bg-orange-100 text-orange-700',
};

// 계약상태 옵션
export const CONTRACT_STATUS_OPTIONS = [
  { value: 'all', label: '전체' },
  { value: 'all_contract', label: '전체 계약' },
  { value: 'pending', label: '계약대기' },
  { value: 'completed', label: '계약완료' },
] as const;

// 정렬 옵션
export const WORKER_SORT_OPTIONS = [
  { value: 'latest', label: '최신순' },
  { value: 'oldest', label: '등록순' },
  { value: 'partnerAsc', label: '거래처명 오름차순' },
  { value: 'partnerDesc', label: '거래처명 내림차순' },
  { value: 'siteAsc', label: '현장명 오름차순' },
  { value: 'siteDesc', label: '현장명 내림차순' },
] as const;

// Mock 데이터 - 거래처 목록
export const MOCK_WORKER_PARTNERS = [
  { value: 'partner1', label: '현성엘리' },
  { value: 'partner2', label: '삼성전자' },
  { value: 'partner3', label: '대우건설' },
  { value: 'partner4', label: 'LG전자' },
];

// Mock 데이터 - 현장 목록
export const MOCK_WORKER_SITES = [
  { value: 'site1', label: '문정교회' },
  { value: 'site2', label: '강남빌딩' },
  { value: 'site3', label: '서초타워' },
  { value: 'site4', label: '판교오피스' },
];

// Mock 데이터 - 부서 목록
export const MOCK_WORKER_DEPARTMENTS = [
  { value: 'dept1', label: '시공' },
  { value: 'dept2', label: '설계' },
  { value: 'dept3', label: '관리' },
  { value: 'dept4', label: '영업' },
];

// Mock 데이터 - 이름 목록
export const MOCK_WORKER_NAMES = [
  { value: 'name1', label: '김정수' },
  { value: 'name2', label: '김동혁' },
  { value: 'name3', label: '이영희' },
  { value: 'name4', label: '박철수' },
  { value: 'name5', label: '최민수' },
];