// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.27.0 // source: users.sql package database import ( "context" "time" "github.com/google/uuid" ) const createUser = `-- name: CreateUser :one INSERT INTO users (id, created_at, updated_at, email, hashed_password) VALUES ( gen_random_uuid(), NOW(), NOW(), $1, $2 ) RETURNING id, created_at, updated_at, email, hashed_password, is_chirpy_red ` type CreateUserParams struct { Email string HashedPassword string } func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, error) { row := q.db.QueryRowContext(ctx, createUser, arg.Email, arg.HashedPassword) var i User err := row.Scan( &i.ID, &i.CreatedAt, &i.UpdatedAt, &i.Email, &i.HashedPassword, &i.IsChirpyRed, ) return i, err } const deleteUser = `-- name: DeleteUser :one DELETE FROM users RETURNING id, created_at, updated_at, email, hashed_password, is_chirpy_red ` func (q *Queries) DeleteUser(ctx context.Context) (User, error) { row := q.db.QueryRowContext(ctx, deleteUser) var i User err := row.Scan( &i.ID, &i.CreatedAt, &i.UpdatedAt, &i.Email, &i.HashedPassword, &i.IsChirpyRed, ) return i, err } const getUserByEmail = `-- name: GetUserByEmail :one SELECT id, created_at, updated_at, email, hashed_password, is_chirpy_red FROM users WHERE users.email = $1 ` func (q *Queries) GetUserByEmail(ctx context.Context, email string) (User, error) { row := q.db.QueryRowContext(ctx, getUserByEmail, email) var i User err := row.Scan( &i.ID, &i.CreatedAt, &i.UpdatedAt, &i.Email, &i.HashedPassword, &i.IsChirpyRed, ) return i, err } const updateUserCredentials = `-- name: UpdateUserCredentials :one UPDATE users SET email = $2, hashed_password = $3, updated_at = NOW() WHERE users.id = $1 RETURNING id, created_at, updated_at, email, is_chirpy_red ` type UpdateUserCredentialsParams struct { ID uuid.UUID Email string HashedPassword string } type UpdateUserCredentialsRow struct { ID uuid.UUID CreatedAt time.Time UpdatedAt time.Time Email string IsChirpyRed bool } func (q *Queries) UpdateUserCredentials(ctx context.Context, arg UpdateUserCredentialsParams) (UpdateUserCredentialsRow, error) { row := q.db.QueryRowContext(ctx, updateUserCredentials, arg.ID, arg.Email, arg.HashedPassword) var i UpdateUserCredentialsRow err := row.Scan( &i.ID, &i.CreatedAt, &i.UpdatedAt, &i.Email, &i.IsChirpyRed, ) return i, err } const upgradeUser = `-- name: UpgradeUser :exec UPDATE users SET is_chirpy_red = true WHERE id = $1 ` func (q *Queries) UpgradeUser(ctx context.Context, id uuid.UUID) error { _, err := q.db.ExecContext(ctx, upgradeUser, id) return err }