#!/bin/bash

DB_HOST="localhost"
DB_PORT="5432"
DB_USER="report_db"
DB_NAME="report_db"
DB_PASSWORD="123456" # ATENÇÃO: Em produção, considere usar .pgpass ou outra forma segura para a senha

API_URL="https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=365&interval=daily"

echo "Buscando dados diários do Bitcoin dos últimos 365 dias..."

RESPONSE=$(curl -s "$API_URL")

if [ -z "$RESPONSE" ]; then
    echo "Não foi possível obter resposta da API. Verifique sua conexão ou a URL."
    exit 1
fi

# Itera sobre cada item de preço
echo "$RESPONSE" | jq -c '.prices[]' | while read -r item; do

    timestamp=$(echo "$item" | jq -r '.[0]')
    price=$(echo "$item" | jq -r '.[1]')

    # Converte o timestamp para data (YYYY-MM-DD). Use -u para GMT/UTC.
    date=$(date -u -d "@$((timestamp/1000))" '+%Y-%m-%d')

    echo "Inserindo valor BTC de $price em $date..."

    # Comando psql para inserir dados
    # O "ON CONFLICT (btc_value_date) DO NOTHING" é crucial aqui para não falhar em datas duplicadas.
    PGPASSWORD="$DB_PASSWORD" psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" <<EOF
INSERT INTO btc_value (btc_value_value, btc_value_date)
VALUES ('$price', '$date')
ON CONFLICT (btc_value_date) DO NOTHING;
EOF

    # Verifica o código de saída do psql para cada inserção
    if [ $? -ne 0 ]; then
        echo "AVISO: Erro ao inserir valor para a data $date. Pode ser duplicidade."
    fi

done

echo "Concluído! Verifique a tabela 'btc_value' no banco de dados para confirmar a inserção."