import fetch from "node-fetch";
import { logInfo, logError } from "../utils/logger";

export async function sendCandlesToServer(
    apiUrl: string,
    ticker: string,
    timeframe: string,
    candles: any[]
): Promise<boolean> {
    try {
        logInfo(`Sending ${candles.length} candles to server for ${ticker} (${timeframe})`);
        const formattedCandles = candles.map(candle => [
            candle.timestamp,
            candle.open,
            candle.high,
            candle.low,
            candle.close,
            candle.volume
        ]);
        const response = await fetch(apiUrl, {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({
                ticker: ticker,
                timeframe: timeframe,
                data: formattedCandles
            })
        });
        if (!response.ok) {
            const errorData = await response.text();
            console.log("OOOOOOOOOOOOOO",errorData)
            throw new Error(`Server responded with ${response.status}: ${errorData}`);
        }
        const result = await response.json();
        logInfo(`Successfully inserted ${result?.inserted} candles for ${ticker}`);
        return true;
    } catch (error) {
        logError(`Failed to send candles to server`, error);
        return false;
    }
}
