import { google } from 'googleapis'; const auth = new google.auth.GoogleAuth({ credentials: { client_email: import.meta.env.GOOGLE_SERVICE_ACCOUNT_EMAIL, private_key: import.meta.env.GOOGLE_PRIVATE_KEY?.replace(/\\n/g, '\n'), }, scopes: ['https://www.googleapis.com/auth/spreadsheets'], }); const sheets = google.sheets({ version: 'v4', auth }); const SPREADSHEET_ID = import.meta.env.GOOGLE_SHEET_ID; export async function emailExists(email: string): Promise { const formula = `=COUNTIF(G:G,"${email}")`; // Escribir fórmula en celda auxiliar await sheets.spreadsheets.values.update({ spreadsheetId: SPREADSHEET_ID, range: 'DATABASE!Z1', // usa una columna libre valueInputOption: 'USER_ENTERED', requestBody: { values: [[formula]], }, }); // Leer resultado calculado const result = await sheets.spreadsheets.values.get({ spreadsheetId: SPREADSHEET_ID, range: 'DATABASE!Z1', valueRenderOption: 'UNFORMATTED_VALUE', }); const count = result.data.values?.[0]?.[0] || 0; return Number(count) > 0; } export async function appendToSheet(values: any[]) { try { await sheets.spreadsheets.values.append({ spreadsheetId: SPREADSHEET_ID, range: 'DATABASE!A2:H2', valueInputOption: 'RAW', requestBody: { values: [values], }, }); return { success: true, message: 'Registro guardado correctamente', }; } catch (error) { throw error; } }