import { Request } from 'express';

interface ClientInfo {
  ip: string;
  deviceType: string;
  userAgent: string;
  referrer: string;
}

export const getClientInfo = (req: Request): ClientInfo => {
  // Obter IP do visitante
  const ip = req.ip || 
             req.headers['x-forwarded-for'] as string || 
             '0.0.0.0';
  
  // Obter User-Agent
  const userAgent = req.headers['user-agent'] || '';
  
  // Obter Referrer
  const referrer = req.headers['referer'] || '';
  
  // Determinar tipo de dispositivo
  let deviceType = 'desktop';
  
  if (userAgent.toLowerCase().match(/mobile|android|iphone|ipad|ipod|windows phone/i)) {
    deviceType = 'mobile';
  } else if (userAgent.toLowerCase().match(/tablet|ipad/i)) {
    deviceType = 'tablet';
  }
  
  return {
    ip: ip.split(',')[0].trim(),
    deviceType,
    userAgent,
    referrer
  };
};
