src/database/data.go (view raw)
1package database
2
3import (
4 "log"
5 "time"
6)
7
8var defaultUserList = []User{
9 {
10 Name: "Admin",
11 IsFemale: false,
12 Height: 180,
13 Weight: 75,
14 BirthDate: time.Date(1990, 1, 1, 0, 0, 0, 0, time.UTC),
15 },
16}
17
18// CheckInitialData ensures that all necessary initial data is in the database
19func (db *Database) CheckInitialData() (err error) {
20 err = db.ensureExerciseData()
21 if err != nil {
22 return
23 }
24
25 err = db.ensureUserData()
26 if err != nil {
27 return
28 }
29
30 log.Println("Initial data verification complete")
31 return
32}
33
34// ensureExerciseData checks if exercise data exists and adds it if not
35func (db *Database) ensureExerciseData() error {
36 // Check if exercise data already exists
37 var count int64
38 if err := db.Model(&Exercise{}).Count(&count).Error; err != nil {
39 return err
40 }
41
42 // If no exercise data, insert the initial data
43 if count == 0 {
44 log.Println("Adding initial exercise data")
45 db.UpdateExercises()
46 }
47
48 return nil
49}
50
51// ensureUserData checks if user data exists and adds it if not
52func (db *Database) ensureUserData() error {
53 // Check if user data already exists
54 var count int64
55 if err := db.Model(&User{}).Count(&count).Error; err != nil {
56 return err
57 }
58
59 // If no user data, insert the initial data
60 if count == 0 {
61 log.Println("Adding initial user data")
62 for _, user := range defaultUserList {
63 if err := db.Create(&user).Error; err != nil {
64 return err
65 }
66 }
67 }
68
69 return nil
70}