# Dados de conexão PostgreSQL (use as variáveis do seu .env)
DB_HOST="localhost"
DB_PORT="5432"
DB_USER="report_db"
DB_NAME="report_db"
DB_PASSWORD="123456" 

API_URL="https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd"

# Formato da data para o dia anterior (YYYY-MM-DD)
YESTERDAY_DATE=$(date -d "yesterday" '+%Y-%m-%d')

echo "Buscando valor atual do Bitcoin (para salvar como $YESTERDAY_DATE)..."

# Faz a requisição à API
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

# Extrai o preço usando jq
price=$(echo "$RESPONSE" | jq -r '.bitcoin.usd') 

if [ -z "$price" ] || [ "$price" == "null" ]; then
    echo "Não foi possível extrair o preço do Bitcoin da resposta da API."
    exit 1
fi

echo "Inserindo valor BTC de $price para a data $YESTERDAY_DATE no banco..."

# Comando psql para inserir dados
# O "ON CONFLICT (btc_value_date) DO NOTHING" garante que se a data já existir, não haverá erro de duplicidade.
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', '$YESTERDAY_DATE')
ON CONFLICT (btc_value_date) DO NOTHING;
EOF

# Verifica o código de saída do psql
if [ $? -eq 0 ]; then
    echo "Concluído! Valor inserido/ignorado com sucesso para a data $YESTERDAY_DATE."
else
    echo "Erro ao inserir valor no banco de dados. Verifique os logs do PostgreSQL."
fi