package repos import "apjournal/internal/models" type UserScoreRepo interface { DBUserScoreCreate(req *models.UserScore) error DBUserScoreGet(username string) (*models.UserScore, error) DBUserScoreUpdate(req *models.UserScore) error } func (p *Provider) DBUserScoreCreate(req *models.UserScore) error { _, err := p.db.NamedExec(` INSERT INTO user_score(username, burn_time, score) VALUES (:username, :burn_time, :score);`, req) return err } func (p *Provider) DBUserScoreGet(username string) (*models.UserScore, error) { resp := models.UserScore{} query := "SELECT * FROM user_score WHERE username=$1;" if err := p.db.Get(&resp, query, username); err != nil { return nil, err } return &resp, nil } func (p *Provider) DBUserScoreUpdate(req *models.UserScore) error { stmt := `UPDATE user_score SET burn_time=$1, score=$2 WHERE username=$3;` _, err := p.db.Exec(stmt, req.BurnTime, req.Score, req.Username) return err }