package auth import ( "context" "database/sql" "time" ) type Row struct { ID int64 PasswordHash []byte CreatedAt time.Time } func QGet(ctx context.Context, db *sql.DB) (*Row, error) { var row Row err := db.QueryRowContext(ctx, ` SELECT id, password_hash, created_at FROM auth ORDER BY id ASC LIMIT 1 `).Scan(&row.ID, &row.PasswordHash, &row.CreatedAt) if err == sql.ErrNoRows { return nil, nil } if err != nil { return nil, err } return &row, nil } func QCreate(ctx context.Context, db *sql.DB, hash []byte) (Row, error) { var row Row err := db.QueryRowContext(ctx, ` INSERT INTO auth (password_hash) VALUES ($1) RETURNING id, password_hash, created_at `, hash).Scan(&row.ID, &row.PasswordHash, &row.CreatedAt) return row, err } func QUpdate(ctx context.Context, db *sql.DB, id int64, hash []byte) error { _, err := db.ExecContext(ctx, `UPDATE auth SET password_hash = $2 WHERE id = $1`, id, hash) return err }