export interface Staff {
  id?: string;
  vendor_id?: string;
  vendor_name?: string;
  created_by?: string;
  created_date?: string;
  
  // Basic Info
  employee_name: string;
  initial?: string;
  position?: string; // Primary Skill
  position_2?: string; // Secondary Skill
  profile_type?: string; // Skill Level
  employment_type?: string;
  manager?: string;
  email?: string;
  contact_number?: string;
  phone?: string; // Additional Phone
  photo?: string; // Photo URL
  status?: string; // 'Active' | 'Pending' | 'Suspended'
  skills?: string[]; // Array of skills

  // Performance
  averageRating?: number;
  reliability_score?: number;
  shift_coverage_percentage?: number;
  cancellation_count?: number;
  no_show_count?: number;
  total_shifts?: number;
  invoiced?: boolean;
  last_active?: string; // ISO timestamp of last activity

  // Location & Dept
  department?: string;
  city?: string;
  hub_location?: string;
  event_location?: string;
  track?: string;
  address?: string;

  // Lang & Schedule
  english?: string;
  english_required?: boolean;
  check_in?: string;
  schedule_days?: string;
  
  // Other
  replaced_by?: string;
  action?: string;
  ro?: string;
  mon?: string;
  notes?: string;
  accounting_comments?: string;
}

export interface User {
  id: string;
  email: string;
  role: string; // 'admin' | 'client' | 'vendor' | 'workforce' | 'operator' | 'procurement' | 'sector'
  user_role?: string; // MVP uses both sometimes
  company_name?: string;
  name: string;
  preferred_vendor_id?: string;
  preferredVendorId?: string;
  preferred_vendor_name?: string;
  preferredVendorName?: string;
}

export interface Event {
  id: string;
  client_email?: string;
  business_name?: string;
  created_by?: string;
  assigned_staff?: { staff_id: string }[];
  
  // Fields used in EventFormWizard
  event_name?: string;
  vendor_id?: string;
  vendor_name?: string;
  hub?: string;
  date?: string;
  total?: number;
  shifts?: any[];
  order_type?: string;
  is_rapid?: boolean;
  is_recurring?: boolean;
  status?: string;
}
