From 5ca2e6a732c7831ed20b3234ce96fea15e18f6f0 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Mon, 26 Jan 2026 21:17:38 -0500 Subject: [PATCH] feat: Add role parameter to user creation and SQL queries - Update CreateUser SQL query to accept role parameter - Regenerate SQLC code to include Role field in CreateUserParams - Support for explicit role assignment during user registration --- internal/database/queries.sql.go | 6 ++++-- internal/database/queries/queries.sql | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/database/queries.sql.go b/internal/database/queries.sql.go index 0441290..f2d43bc 100644 --- a/internal/database/queries.sql.go +++ b/internal/database/queries.sql.go @@ -132,8 +132,8 @@ func (q *Queries) CreateEbookRating(ctx context.Context, arg CreateEbookRatingPa } const CreateUser = `-- name: CreateUser :one -INSERT INTO users (email, username, password_hash, first_name, last_name, theme) -VALUES ($1, $2, $3, $4, $5, $6) +INSERT INTO users (email, username, password_hash, first_name, last_name, theme, role) +VALUES ($1, $2, $3, $4, $5, $6, $7) RETURNING id, email, username, theme, first_name, last_name, role, created_at, updated_at ` @@ -144,6 +144,7 @@ type CreateUserParams struct { FirstName pgtype.Text `db:"first_name" json:"first_name"` LastName pgtype.Text `db:"last_name" json:"last_name"` Theme pgtype.Text `db:"theme" json:"theme"` + Role string `db:"role" json:"role"` } type CreateUserRow struct { @@ -166,6 +167,7 @@ func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (CreateU arg.FirstName, arg.LastName, arg.Theme, + arg.Role, ) var i CreateUserRow err := row.Scan( diff --git a/internal/database/queries/queries.sql b/internal/database/queries/queries.sql index 85d620c..5e90bf6 100644 --- a/internal/database/queries/queries.sql +++ b/internal/database/queries/queries.sql @@ -1,6 +1,6 @@ -- name: CreateUser :one -INSERT INTO users (email, username, password_hash, first_name, last_name, theme) -VALUES ($1, $2, $3, $4, $5, $6) +INSERT INTO users (email, username, password_hash, first_name, last_name, theme, role) +VALUES ($1, $2, $3, $4, $5, $6, $7) RETURNING id, email, username, theme, first_name, last_name, role, created_at, updated_at; -- name: GetUserByEmail :one