package sqlite

import (
	"os"
	"path/filepath"

	"gorm.io/driver/sqlite"
	"gorm.io/gorm"

	"github.com/pingcap-inc/security/baseline/api/v1/model"
)

func Open(cacheDir string) (*gorm.DB, error) {
	cacheDBDir := filepath.Join(cacheDir, "db")
	if _, err := os.Stat(cacheDBDir); os.IsNotExist(err) {
		os.MkdirAll(cacheDBDir, 0o700)
	}

	db, err := gorm.Open(sqlite.Open(
		filepath.Join(cacheDBDir, "baseline.db"),
	), &gorm.Config{})

	if err != nil {
		return nil, err
	}

	return model.AutoMigrate(db), nil
}
