Files
discord-go-bot/db_management/db_management.go

49 lines
1.0 KiB
Go

package db_management
import (
"database/sql"
"time"
_ "modernc.org/sqlite"
)
var DB *sql.DB
func InitDB() {
var err error
// Öffnet bot.db im aktuellen Verzeichnis
DB, err = sql.Open("sqlite", "./bot.db")
if err != nil {
panic(err)
}
// Tabelle für einzelne Sessions
statement := `
CREATE TABLE IF NOT EXISTS voice_sessions (
user_id TEXT,
seconds INTEGER,
created_at TIMESTAMP
);`
_, err = DB.Exec(statement)
if err != nil {
panic(err)
}
}
func SaveSession(userID string, seconds int) {
query := `INSERT INTO voice_sessions (user_id, seconds, created_at) VALUES (?, ?, ?)`
DB.Exec(query, userID, seconds, time.Now())
}
func GetUserStats(userID string) int {
var total sql.NullInt64 // NullInt64 fängt NULL-Ergebnisse ab
query := `SELECT SUM(seconds) FROM voice_sessions
WHERE user_id = ? AND created_at > date('now', '-30 days')`
err := DB.QueryRow(query, userID).Scan(&total)
if err != nil || !total.Valid {
return 0
}
return int(total.Int64)
}