feat: init commit

This commit is contained in:
DaanSelen
2026-04-20 16:58:20 +02:00
parent 5b84b3ed1d
commit 4b783b50fb
14 changed files with 495 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
package database
import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"gorm.io/gorm/schema"
)
func KickoffDatabase() (*gorm.DB, error) {
db, err := gorm.Open(sqlite.Open("garden.db"), &gorm.Config{
NamingStrategy: schema.NamingStrategy{
SingularTable: true,
},
})
if err != nil {
return nil, err
}
if err := db.AutoMigrate(&AppState{}); err != nil {
return nil, err
}
if err := db.AutoMigrate(&Files{}); err != nil {
return nil, err
}
// create the first row if it does not exist yet
if err := db.FirstOrCreate(&AppState{}, AppState{
ID: 1,
Mode: "unspecified",
Running: false,
}).Error; err != nil {
return nil, err
}
return db, nil
}
+19
View File
@@ -0,0 +1,19 @@
package database
type AppState struct {
ID int `gorm:"primaryKey"`
// Mode =
// 0: unspecified
// 1: video
// 2: presentation
// 3: internet URL
Mode string
Running bool
}
type Files struct {
ID int `gorm:"primaryKey"`
Mode string
Filename string
Filepath string
}
+29
View File
@@ -0,0 +1,29 @@
package database
import (
"path/filepath"
"gorm.io/gorm"
)
func GetAppState(db *gorm.DB) (AppState, error) {
var state AppState
return state, db.First(&state).Error
}
func GetFiles(db *gorm.DB) ([]Files, error) {
var files []Files
return files, db.Find(&files).Error
}
func RegisterFile(db *gorm.DB, category, fullPath string) error {
file := Files{
Mode: category,
Filename: filepath.Base(fullPath),
Filepath: fullPath,
}
return db.Create(&file).Error
}