export enum UserRole {
  EMPLOYEE = 'EMPLOYEE',
  HR_ADMIN = 'HR_ADMIN',
}

export enum AttendanceMethod {
  GPS = 'GPS',
  BIOMETRIC = 'BIOMETRIC',
}

export enum EmploymentType {
  FULL_TIME = 'FULL_TIME',
  PART_TIME = 'PART_TIME',
  FREELANCE = 'FREELANCE',
}

export enum WorkMode {
  OFFICE = 'OFFICE',
  REMOTE = 'REMOTE',
  HYBRID = 'HYBRID',
}

export enum Department {
  SOFTWARE = 'SOFTWARE',
  SALES = 'SALES',
  MARKETING = 'MARKETING',
  HR = 'HR',
  FINANCE = 'FINANCE',
}

export interface CurrentUser {
  id: number;
  email: string;
  name: string;
  role: UserRole;
  avatar?: string;
  attendanceMethod: AttendanceMethod;
  biometricDeviceId?: string;
  employmentType: EmploymentType;
  workMode: WorkMode;
  department: Department;
  hireDate?: string;
  isActive: boolean;
  createdAt: string;
  updatedAt: string;
}

export interface AuthContextType {
  user: CurrentUser | null;
  isAuthenticated: boolean;
  isHRAdmin: boolean;
  isEmployee: boolean;
  loading: boolean;
  login: (token: string, userData: CurrentUser) => void;
  logout: () => void;
}
