package config import ( "heating-monitor/internal/bot" "log" "os" "path/filepath" "gorm.io/driver/sqlite" "gorm.io/gorm" ) var DB *gorm.DB func InitDB() { // Crear directorio 'data' si no existe dbDir := "data" if _, err := os.Stat(dbDir); os.IsNotExist(err) { err := os.Mkdir(dbDir, 0755) if err != nil { log.Fatalf("Error creando el directorio %s: %v", dbDir, err) } } // Ruta de la base de datos dbPath := filepath.Join(dbDir, "heating.db") // Conectar con SQLite var err error DB, err = gorm.Open(sqlite.Open(dbPath), &gorm.Config{}) if err != nil { log.Fatal("Error al conectar con la base de datos:", err) } log.Println("Base de datos inicializada en", dbPath) // Migrar el modelo HeatingEvent if err := DB.AutoMigrate(&bot.HeatingEvent{}); err != nil { log.Fatalf("Error al migrar el modelo HeatingEvent: %v", err) } // Verificar que la base de datos está abierta correctamente if DB != nil { log.Println("Conexión a la base de datos establecida correctamente.") } else { log.Fatal("La conexión a la base de datos es nula.") } }