/**
 * Código para Google Apps Script
 * 
 * INSTRUÇÕES:
 * 1. Abra sua planilha no Google Sheets
 * 2. Vá em Extensões → Apps Script
 * 3. Cole este código completo
 * 4. Salve o projeto
 * 5. Implante como Web App (veja INSTRUCOES_GOOGLE_SHEETS.md)
 */

function doPost(e) {
  try {
    // Obter a planilha e a aba específica "Leads - Site"
    const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    let sheet = spreadsheet.getSheetByName('Leads - Site');
    
    // Se a aba não existir, usar a aba ativa (fallback)
    if (!sheet) {
      sheet = spreadsheet.getActiveSheet();
    }
    
    // Verificar se há dados enviados
    if (!e.postData || !e.postData.contents) {
      return ContentService.createTextOutput(JSON.stringify({
        status: 'error',
        message: 'Nenhum dado recebido'
      })).setMimeType(ContentService.MimeType.JSON);
    }
    
    // Obter os dados enviados
    const data = JSON.parse(e.postData.contents);
    
    // Validar dados obrigatórios
    if (!data.nome) {
      return ContentService.createTextOutput(JSON.stringify({
        status: 'error',
        message: 'Nome é obrigatório'
      })).setMimeType(ContentService.MimeType.JSON);
    }
    
    // Preparar data/hora no formato brasileiro
    let dataHora = data.data || new Date().toLocaleString('pt-BR', {
      timeZone: 'America/Sao_Paulo',
      year: 'numeric',
      month: '2-digit',
      day: '2-digit',
      hour: '2-digit',
      minute: '2-digit',
      second: '2-digit'
    });
    
    // Preparar os dados para inserir na planilha
    // Mapeamento para a planilha "Leads - Site":
    // Coluna A: Data
    // Coluna B: Nome
    // Coluna C: E-mail
    // Coluna D: Telefone
    // Coluna E: Nome da Empresa (usar CNPJ ou cidade)
    // Coluna F: Qual o segmento da sua empresa?
    const row = [
      dataHora,                                    // A: Data
      data.nome || '',                             // B: Nome
      data.email || '',                            // C: E-mail
      data.telefone || '',                          // D: Telefone
      data.cnpj || data.cidade || '',              // E: Nome da Empresa (CNPJ ou Cidade)
      data.segmento || ''                           // F: Qual o segmento da sua empresa?
    ];
    
    // Adicionar a linha na planilha
    sheet.appendRow(row);
    
    // Retornar sucesso
    return ContentService.createTextOutput(JSON.stringify({
      status: 'success',
      message: 'Dados inseridos com sucesso',
      timestamp: new Date().toISOString()
    })).setMimeType(ContentService.MimeType.JSON);
    
  } catch (error) {
    // Log do erro (opcional - você pode verificar em Execuções no Apps Script)
    console.error('Erro ao processar dados:', error);
    
    // Retornar erro
    return ContentService.createTextOutput(JSON.stringify({
      status: 'error',
      message: error.toString(),
      timestamp: new Date().toISOString()
    })).setMimeType(ContentService.MimeType.JSON);
  }
}

function doGet(e) {
  // Resposta para teste do Web App
  return ContentService.createTextOutput(
    '✅ Web App funcionando!\n\n' +
    'Este é o endpoint para receber leads do formulário.\n' +
    'Use o método POST para enviar dados.\n\n' +
    'Data/Hora: ' + new Date().toLocaleString('pt-BR', {
      timeZone: 'America/Sao_Paulo'
    })
  ).setMimeType(ContentService.MimeType.TEXT);
}

/**
 * Função de teste (opcional)
 * Execute esta função no editor do Apps Script para testar
 */
function testIntegration() {
  const testData = {
    data: new Date().toLocaleString('pt-BR'),
    nome: 'Teste de Integração',
    email: 'teste@gimak.com.br',
    cnpj: '12.345.678/0001-90',
    telefone: '(47) 99999-9999',
    cidade: 'Massaranduba',
    segmento: 'Teste',
    volume: '0-50',
    ip: '127.0.0.1'
  };
  
  const mockEvent = {
    postData: {
      contents: JSON.stringify(testData)
    }
  };
  
  const result = doPost(mockEvent);
  Logger.log(result.getContent());
}

