// Camera profiles portados do backend Python (vdown_service.py).
// Cada perfil descreve um aparelho real — make/model/software vão como
// metadados injetados pelo ffmpeg quando o anti-detect está ligado.
//
// Pra adicionar perfis novos: pega make/model de um vídeo real (ffprobe -show_format),
// adiciona aqui e no Python pra ficar sincronizado.

export const CAMERA_PROFILES = [
  {
    label: 'Samsung Galaxy S24 Ultra',
    make: 'Samsung',
    model: 'SM-S928B',
    software: 'S928BXXU3AXH1',
    lens: 'Samsung S24 Ultra Rear Camera',
    encoder: 'c2.android.avc.encoder'
  },
  {
    label: 'iPhone 15 Pro',
    make: 'Apple',
    model: 'iPhone15,2',
    software: '17.5.1',
    lens: 'iPhone 15 Pro back triple camera 6.765mm f/1.78',
    encoder: 'com.apple.avfoundation.avc_encoder'
  },
  {
    label: 'Xiaomi 14 Pro',
    make: 'Xiaomi',
    model: '23116PN5BC',
    software: 'OS1.0.4.0.UNACNXM',
    lens: 'Xiaomi 14 Pro rear camera',
    encoder: 'c2.qti.avc.encoder'
  },
  {
    label: 'Google Pixel 8 Pro',
    make: 'Google',
    model: 'Pixel 8 Pro',
    software: 'AP2A.240905.003',
    lens: 'Google Pixel 8 Pro rear camera',
    encoder: 'c2.google.avc.encoder'
  },
  {
    label: 'OnePlus 12',
    make: 'OnePlus',
    model: 'CPH2583',
    software: 'CPH2583_14.0.0.800',
    lens: 'OnePlus 12 rear camera',
    encoder: 'c2.qti.avc.encoder'
  }
];

export function chooseProfile(label = null) {
  if (label && label !== 'random') {
    const found = CAMERA_PROFILES.find(p => p.label === label);
    if (found) return found;
  }
  return CAMERA_PROFILES[Math.floor(Math.random() * CAMERA_PROFILES.length)];
}

// Gera uma data de gravação aleatória nos últimos N dias (pra parecer real).
export function randomRecentDate(daysAgo = 90) {
  const now = Date.now();
  const delta = Math.floor(Math.random() * daysAgo * 24 * 3600 * 1000);
  return new Date(now - delta);
}

// Formata pro ISO sem timezone (formato que o ffmpeg metadata espera).
export function formatCreationTime(date) {
  return date.toISOString().slice(0, 19);  // YYYY-MM-DDTHH:mm:ss
}

// Lat/lon aleatório dentro do quadrado SP (mesmo range do backend Python).
export function randomLocation() {
  const lat = Math.round((Math.random() * (-22.5 - -23.5) + -23.5) * 10000) / 10000;
  const lon = Math.round((Math.random() * (-46.5 - -47.5) + -47.5) * 10000) / 10000;
  const fmt = (n) => (n >= 0 ? '+' : '') + n.toFixed(4);
  return `${fmt(lat)}${fmt(lon)}/`;
}
