Files
catalyst/migrations/3_defaultdata.go
2024-08-03 13:43:41 +02:00

77 lines
1.6 KiB
Go

package migrations
import (
"encoding/json"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/daos"
"github.com/pocketbase/pocketbase/models"
)
func defaultDataUp(db dbx.Builder) error {
dao := daos.New(db)
for _, records := range [][]*models.Record{typeRecords(dao)} {
for _, record := range records {
if err := dao.SaveRecord(record); err != nil {
return err
}
}
}
return nil
}
func typeRecords(dao *daos.Dao) []*models.Record {
collection, err := dao.FindCollectionByNameOrId(TypeCollectionName)
if err != nil {
panic(err)
}
var records []*models.Record
record := models.NewRecord(collection)
record.SetId("incident")
record.Set("singular", "Incident")
record.Set("plural", "Incidents")
record.Set("icon", "Flame")
record.Set("schema", s(map[string]any{
"type": "object",
"properties": map[string]any{
"severity": map[string]any{
"title": "Severity",
"enum": []string{"Low", "Medium", "High"},
},
},
"required": []string{"severity"},
}))
records = append(records, record)
record = models.NewRecord(collection)
record.SetId("alert")
record.Set("singular", "Alert")
record.Set("plural", "Alerts")
record.Set("icon", "AlertTriangle")
record.Set("schema", s(map[string]any{
"type": "object",
"properties": map[string]any{
"severity": map[string]any{
"title": "Severity",
"enum": []string{"Low", "Medium", "High"},
},
},
"required": []string{"severity"},
}))
records = append(records, record)
return records
}
func s(m map[string]any) string {
b, _ := json.Marshal(m) //nolint:errchkjson
return string(b)
}