#!/bin/bash

# Script de migração do BoltDB para arquivo SQL
# Este script gera um arquivo SQL com comandos INSERT para migrar dados

set -e

echo "=== Migração BoltDB para SQL ==="
echo

# Verificar se o arquivo BoltDB existe
if [ ! -f "data/yasuc.db" ]; then
    echo "Arquivo BoltDB não encontrado: data/yasuc.db"
    echo "Certifique-se de que o arquivo existe antes de executar a migração."
    exit 1
fi

echo "Arquivo BoltDB encontrado: data/yasuc.db"

# Verificar se Go está instalado
if ! command -v go &> /dev/null; then
    echo "Go não encontrado. Instale o Go para executar a migração."
    exit 1
fi

echo "Go encontrado, compilando script de migração..."

# Compilar o script de migração
go build -o migrate-to-sql cmd/migrate-to-sql/main.go

if [ $? -ne 0 ]; then
    echo "Erro ao compilar script de migração."
    exit 1
fi

# Executar migração
timestamp=$(date +%Y%m%d_%H%M%S)
sqlFile="data/migration_${timestamp}.sql"

echo "Executando migração..."
echo "Arquivo SQL de saída: $sqlFile"

./migrate-to-sql -bolt data/yasuc.db -output "$sqlFile"

if [ $? -eq 0 ]; then
    echo
    echo "=== Migração concluída com sucesso! ==="
    echo
    echo "Arquivo SQL gerado: $sqlFile"
    echo
    echo "Para aplicar a migração ao banco SQLite3:"
    echo "sqlite3 data/yasuc.sqlite3 < $sqlFile"
    echo
    echo "Para verificar o conteúdo do arquivo SQL:"
    echo "head -20 $sqlFile"
    echo
    echo "Para verificar o tamanho do arquivo:"
    echo "ls -lh $sqlFile"
else
    echo "Erro durante a migração."
    exit 1
fi

# Limpar arquivo temporário
rm -f migrate-to-sql 