From cb3a6ddc580bbe308ce5132a048009c03cd5a578 Mon Sep 17 00:00:00 2001 From: LandaMm Date: Thu, 5 Jun 2025 20:49:35 +0200 Subject: [PATCH] feat: add support for new fields in user table --- internal/repository/models.go | 2 ++ internal/repository/users.sql.go | 26 +++++++++++++++++--------- queries/users.sql | 4 ++-- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/internal/repository/models.go b/internal/repository/models.go index 2f18de7..1af40cc 100644 --- a/internal/repository/models.go +++ b/internal/repository/models.go @@ -35,4 +35,6 @@ type User struct { LastLogin *time.Time `json:"last_login"` PhoneNumber *string `json:"phone_number"` ProfilePicture *string `json:"profile_picture"` + CreatedBy *uuid.UUID `json:"created_by"` + EmailVerified bool `json:"email_verified"` } diff --git a/internal/repository/users.sql.go b/internal/repository/users.sql.go index 39b2c1e..2563ece 100644 --- a/internal/repository/users.sql.go +++ b/internal/repository/users.sql.go @@ -12,7 +12,7 @@ import ( ) const findAllUsers = `-- name: FindAllUsers :many -SELECT id, email, full_name, password_hash, is_admin, created_at, updated_at, last_login, phone_number, profile_picture FROM users +SELECT id, email, full_name, password_hash, is_admin, created_at, updated_at, last_login, phone_number, profile_picture, created_by, email_verified FROM users ` func (q *Queries) FindAllUsers(ctx context.Context) ([]User, error) { @@ -35,6 +35,8 @@ func (q *Queries) FindAllUsers(ctx context.Context) ([]User, error) { &i.LastLogin, &i.PhoneNumber, &i.ProfilePicture, + &i.CreatedBy, + &i.EmailVerified, ); err != nil { return nil, err } @@ -47,7 +49,7 @@ func (q *Queries) FindAllUsers(ctx context.Context) ([]User, error) { } const findUserEmail = `-- name: FindUserEmail :one -SELECT id, email, full_name, password_hash, is_admin, created_at, updated_at, last_login, phone_number, profile_picture FROM users WHERE email = $1 LIMIT 1 +SELECT id, email, full_name, password_hash, is_admin, created_at, updated_at, last_login, phone_number, profile_picture, created_by, email_verified FROM users WHERE email = $1 LIMIT 1 ` func (q *Queries) FindUserEmail(ctx context.Context, email string) (User, error) { @@ -64,12 +66,14 @@ func (q *Queries) FindUserEmail(ctx context.Context, email string) (User, error) &i.LastLogin, &i.PhoneNumber, &i.ProfilePicture, + &i.CreatedBy, + &i.EmailVerified, ) return i, err } const findUserId = `-- name: FindUserId :one -SELECT id, email, full_name, password_hash, is_admin, created_at, updated_at, last_login, phone_number, profile_picture FROM users WHERE id = $1 LIMIT 1 +SELECT id, email, full_name, password_hash, is_admin, created_at, updated_at, last_login, phone_number, profile_picture, created_by, email_verified FROM users WHERE id = $1 LIMIT 1 ` func (q *Queries) FindUserId(ctx context.Context, id uuid.UUID) (User, error) { @@ -86,24 +90,27 @@ func (q *Queries) FindUserId(ctx context.Context, id uuid.UUID) (User, error) { &i.LastLogin, &i.PhoneNumber, &i.ProfilePicture, + &i.CreatedBy, + &i.EmailVerified, ) return i, err } const insertUser = `-- name: InsertUser :one INSERT INTO users ( - email, full_name, password_hash, is_admin + email, full_name, password_hash, is_admin, created_by ) VALUES ( - $1, $2, $3, $4 + $1, $2, $3, $4, $5 ) RETURNING id ` type InsertUserParams struct { - Email string `json:"email"` - FullName string `json:"full_name"` - PasswordHash string `json:"password_hash"` - IsAdmin bool `json:"is_admin"` + Email string `json:"email"` + FullName string `json:"full_name"` + PasswordHash string `json:"password_hash"` + IsAdmin bool `json:"is_admin"` + CreatedBy *uuid.UUID `json:"created_by"` } func (q *Queries) InsertUser(ctx context.Context, arg InsertUserParams) (uuid.UUID, error) { @@ -112,6 +119,7 @@ func (q *Queries) InsertUser(ctx context.Context, arg InsertUserParams) (uuid.UU arg.FullName, arg.PasswordHash, arg.IsAdmin, + arg.CreatedBy, ) var id uuid.UUID err := row.Scan(&id) diff --git a/queries/users.sql b/queries/users.sql index 92ecb35..b2b78df 100644 --- a/queries/users.sql +++ b/queries/users.sql @@ -3,9 +3,9 @@ SELECT * FROM users; -- name: InsertUser :one INSERT INTO users ( - email, full_name, password_hash, is_admin + email, full_name, password_hash, is_admin, created_by ) VALUES ( - $1, $2, $3, $4 + $1, $2, $3, $4, $5 ) RETURNING id;