package main import ( "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/sqlite" ) // Define the Box model type Box struct { gorm.Model Name string `json:"name"` } // Define the Item model type Item struct { gorm.Model Name string `json:"name"` Description string `json:"description"` BoxID uint `json:"box_id"` ImagePath *string `json:"image_path"` } // Define the User model type User struct { gorm.Model Username string `json:"username"` Password string `json:"password"` } func ConnectDB(dbPath string) (*gorm.DB, error) { db, err := gorm.Open("sqlite3", dbPath) if err != nil { return nil, fmt.Errorf("failed to connect to database: %v", err) } // AutoMigrate will create the tables if they don't exist db.AutoMigrate(&Box{}, &Item{}, &User{}) return db, nil }