package models import ( "log" "gorm.io/driver/sqlite" "gorm.io/gorm" ) var db *gorm.DB // InitDB initializes the database connection func InitDB() { var err error db, err = gorm.Open(sqlite.Open("project_dashboard.db"), &gorm.Config{}) if err != nil { log.Fatal("Failed to connect to database:", err) } // Auto-migrate the schema err = db.AutoMigrate( &User{}, &Project{}, &ProjectMember{}, &Task{}, &Subtask{}, &Label{}, &Comment{}, &FileUpload{}, ) if err != nil { log.Fatal("Failed to migrate database:", err) } log.Println("Database connected and migrated successfully") } // GetDB returns the database instance func GetDB() *gorm.DB { return db } // CloseDB closes the database connection func CloseDB() { sqlDB, err := db.DB() if err != nil { log.Printf("Error getting database instance: %v", err) return } sqlDB.Close() }