You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
2.3 KiB
Go

package models
import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
var DB *gorm.DB
var phaseOneID uint
func ConnectDatabaseDev() {
database, err := gorm.Open(sqlite.Open("dev.db"), &gorm.Config{
Logger: logger.Default.LogMode(logger.Warn),
})
if err != nil {
panic("Couldn't connect to database")
}
database.AutoMigrate(&Card{}, &CardDeck{}, &Phase{}, &User{})
DB = database
}
func ConnectDatabase() {
database, err := gorm.Open(sqlite.Open("dev.db"), &gorm.Config{
Logger: logger.Default.LogMode(logger.Warn),
})
if err != nil {
panic("Couldn't connect to database")
}
database.AutoMigrate(&Card{}, &CardDeck{}, &Phase{}, &User{})
DB = database
}
func SeedDatabase() {
var phaseCount int64
var phaseOne Phase
if DB.Table("phases").Count(&phaseCount); phaseCount == 0 {
phaseFive := Phase{
Name: "Phase 5",
PauseLength: 90,
}
phaseFour := Phase{
Name: "Phase 4",
PauseLength: 30,
}
phaseThree := Phase{
Name: "Phase 3",
PauseLength: 14,
}
phaseTwo := Phase{
Name: "Phase 2",
PauseLength: 7,
}
phaseOne = Phase{
Name: "Phase 1",
PauseLength: 3,
}
DB.Create(&phaseOne)
DB.Create(&phaseTwo)
DB.Create(&phaseThree)
DB.Create(&phaseFour)
DB.Create(&phaseFive)
DB.Save(&phaseOne)
DB.Save(&phaseTwo)
DB.Save(&phaseThree)
DB.Save(&phaseFour)
DB.Save(&phaseFive)
phaseTwo.FirstID = &phaseOne.ID
phaseThree.FirstID = &phaseOne.ID
phaseFour.FirstID = &phaseOne.ID
phaseFive.FirstID = &phaseOne.ID
phaseOne.NextID = &phaseTwo.ID
phaseTwo.NextID = &phaseThree.ID
phaseThree.NextID = &phaseFour.ID
phaseFour.NextID = &phaseFive.ID
DB.Save(&phaseOne)
DB.Save(&phaseTwo)
DB.Save(&phaseThree)
DB.Save(&phaseFour)
DB.Save(&phaseFive)
} else {
DB.First(&phaseOne, &Phase{First: nil})
}
phaseOneID = phaseOne.ID
var cardDeckCount int64
if DB.Table("card_decks").Count(&cardDeckCount); cardDeckCount == 0 {
cardDeck := CardDeck{
Title: "Test Stapel",
Description: "Dieser Stapel wurde als Beispiel erstllt",
Cards: []Card{
{
Front: "Hallo",
Back: "Hello",
Hint: "Hallo in Englisch",
},
{
Front: "Auf Wiedersehen",
Back: "Bye",
Hint: "Auf Wiedersehen auf Englisch",
},
},
}
DB.Create(&cardDeck)
DB.Save(&cardDeck)
}
}