1package main
2
3import (
4 "database/sql"
5 "fmt"
6 "log"
7 "math/rand"
8 "time"
9
10 _ "github.com/mattn/go-sqlite3"
11)
12
13func main() {
14 db, err := sql.Open("sqlite3", "./appview.db?_foreign_keys=1")
15 if err != nil {
16 log.Fatal("Failed to open database:", err)
17 }
18 defer db.Close()
19
20 const did = "did:plc:qfpnj4og54vl56wngdriaxug"
21
22 now := time.Now()
23 start := time.Date(now.Year(), 1, 1, 0, 0, 0, 0, time.UTC)
24
25 tx, err := db.Begin()
26 if err != nil {
27 log.Fatal(err)
28 }
29 stmt, err := tx.Prepare("INSERT INTO punchcard (did, date, count) VALUES (?, ?, ?)")
30 if err != nil {
31 log.Fatal(err)
32 }
33 defer stmt.Close()
34
35 for day := start; !day.After(now); day = day.AddDate(0, 0, 1) {
36 count := rand.Intn(16) // 0–5
37 dateStr := day.Format("2006-01-02")
38 _, err := stmt.Exec(did, dateStr, count)
39 if err != nil {
40 log.Printf("Failed to insert for date %s: %v", dateStr, err)
41 }
42 }
43
44 if err := tx.Commit(); err != nil {
45 log.Fatal("Failed to commit:", err)
46 }
47
48 fmt.Println("Done populating punchcard.")
49}