Files
PrivateCaptcha/pkg/db/generated/users.sql.go
2025-12-06 14:04:04 +01:00

285 lines
7.1 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: users.sql
package generated
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const createUser = `-- name: CreateUser :one
INSERT INTO backend.users (name, email, subscription_id) VALUES ($1, $2, $3) RETURNING id, name, email, subscription_id, created_at, updated_at, deleted_at
`
type CreateUserParams struct {
Name string `db:"name" json:"name"`
Email string `db:"email" json:"email"`
SubscriptionID pgtype.Int4 `db:"subscription_id" json:"subscription_id"`
}
func (q *Queries) CreateUser(ctx context.Context, arg *CreateUserParams) (*User, error) {
row := q.db.QueryRow(ctx, createUser, arg.Name, arg.Email, arg.SubscriptionID)
var i User
err := row.Scan(
&i.ID,
&i.Name,
&i.Email,
&i.SubscriptionID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
)
return &i, err
}
const deleteUsers = `-- name: DeleteUsers :exec
DELETE FROM backend.users WHERE id = ANY($1::INT[])
`
func (q *Queries) DeleteUsers(ctx context.Context, dollar_1 []int32) error {
_, err := q.db.Exec(ctx, deleteUsers, dollar_1)
return err
}
const getSoftDeletedUsers = `-- name: GetSoftDeletedUsers :many
SELECT u.id, u.name, u.email, u.subscription_id, u.created_at, u.updated_at, u.deleted_at
FROM backend.users u
WHERE u.deleted_at IS NOT NULL
AND u.deleted_at < $1
LIMIT $2
`
type GetSoftDeletedUsersParams struct {
DeletedAt pgtype.Timestamptz `db:"deleted_at" json:"deleted_at"`
Limit int32 `db:"limit" json:"limit"`
}
type GetSoftDeletedUsersRow struct {
User User `db:"user" json:"user"`
}
func (q *Queries) GetSoftDeletedUsers(ctx context.Context, arg *GetSoftDeletedUsersParams) ([]*GetSoftDeletedUsersRow, error) {
rows, err := q.db.Query(ctx, getSoftDeletedUsers, arg.DeletedAt, arg.Limit)
if err != nil {
return nil, err
}
defer rows.Close()
var items []*GetSoftDeletedUsersRow
for rows.Next() {
var i GetSoftDeletedUsersRow
if err := rows.Scan(
&i.User.ID,
&i.User.Name,
&i.User.Email,
&i.User.SubscriptionID,
&i.User.CreatedAt,
&i.User.UpdatedAt,
&i.User.DeletedAt,
); err != nil {
return nil, err
}
items = append(items, &i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getTrialUsers = `-- name: GetTrialUsers :many
SELECT u.id, u.name, u.email, u.subscription_id, u.created_at, u.updated_at, u.deleted_at
FROM backend.users u
JOIN backend.subscriptions s ON u.subscription_id = s.id
WHERE
s.source = $1 AND
s.trial_ends_at IS NOT NULL AND
s.trial_ends_at BETWEEN $2 AND $3 AND
s.status = $4 AND
u.deleted_at IS NULL
LIMIT $5
`
type GetTrialUsersParams struct {
Source SubscriptionSource `db:"source" json:"source"`
TrialEndsAt pgtype.Timestamptz `db:"trial_ends_at" json:"trial_ends_at"`
TrialEndsAt_2 pgtype.Timestamptz `db:"trial_ends_at_2" json:"trial_ends_at_2"`
Status string `db:"status" json:"status"`
Limit int32 `db:"limit" json:"limit"`
}
func (q *Queries) GetTrialUsers(ctx context.Context, arg *GetTrialUsersParams) ([]*User, error) {
rows, err := q.db.Query(ctx, getTrialUsers,
arg.Source,
arg.TrialEndsAt,
arg.TrialEndsAt_2,
arg.Status,
arg.Limit,
)
if err != nil {
return nil, err
}
defer rows.Close()
var items []*User
for rows.Next() {
var i User
if err := rows.Scan(
&i.ID,
&i.Name,
&i.Email,
&i.SubscriptionID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
); err != nil {
return nil, err
}
items = append(items, &i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getUserByEmail = `-- name: GetUserByEmail :one
SELECT id, name, email, subscription_id, created_at, updated_at, deleted_at FROM backend.users WHERE email = $1 AND deleted_at IS NULL
`
func (q *Queries) GetUserByEmail(ctx context.Context, email string) (*User, error) {
row := q.db.QueryRow(ctx, getUserByEmail, email)
var i User
err := row.Scan(
&i.ID,
&i.Name,
&i.Email,
&i.SubscriptionID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
)
return &i, err
}
const getUserByID = `-- name: GetUserByID :one
SELECT id, name, email, subscription_id, created_at, updated_at, deleted_at FROM backend.users WHERE id = $1
`
func (q *Queries) GetUserByID(ctx context.Context, id int32) (*User, error) {
row := q.db.QueryRow(ctx, getUserByID, id)
var i User
err := row.Scan(
&i.ID,
&i.Name,
&i.Email,
&i.SubscriptionID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
)
return &i, err
}
const getUsersWithoutSubscription = `-- name: GetUsersWithoutSubscription :many
SELECT id, name, email, subscription_id, created_at, updated_at, deleted_at FROM backend.users where id = ANY($1::INT[]) AND (subscription_id IS NULL OR deleted_at IS NOT NULL)
`
func (q *Queries) GetUsersWithoutSubscription(ctx context.Context, dollar_1 []int32) ([]*User, error) {
rows, err := q.db.Query(ctx, getUsersWithoutSubscription, dollar_1)
if err != nil {
return nil, err
}
defer rows.Close()
var items []*User
for rows.Next() {
var i User
if err := rows.Scan(
&i.ID,
&i.Name,
&i.Email,
&i.SubscriptionID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
); err != nil {
return nil, err
}
items = append(items, &i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const softDeleteUser = `-- name: SoftDeleteUser :one
UPDATE backend.users SET deleted_at = NOW() WHERE id = $1 RETURNING id, name, email, subscription_id, created_at, updated_at, deleted_at
`
func (q *Queries) SoftDeleteUser(ctx context.Context, id int32) (*User, error) {
row := q.db.QueryRow(ctx, softDeleteUser, id)
var i User
err := row.Scan(
&i.ID,
&i.Name,
&i.Email,
&i.SubscriptionID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
)
return &i, err
}
const updateUserData = `-- name: UpdateUserData :one
UPDATE backend.users SET name = $2, email = $3, updated_at = NOW() WHERE id = $1 RETURNING id, name, email, subscription_id, created_at, updated_at, deleted_at
`
type UpdateUserDataParams struct {
ID int32 `db:"id" json:"id"`
Name string `db:"name" json:"name"`
Email string `db:"email" json:"email"`
}
func (q *Queries) UpdateUserData(ctx context.Context, arg *UpdateUserDataParams) (*User, error) {
row := q.db.QueryRow(ctx, updateUserData, arg.ID, arg.Name, arg.Email)
var i User
err := row.Scan(
&i.ID,
&i.Name,
&i.Email,
&i.SubscriptionID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
)
return &i, err
}
const updateUserSubscription = `-- name: UpdateUserSubscription :one
UPDATE backend.users SET subscription_id = $2, updated_at = NOW() WHERE id = $1 RETURNING id, name, email, subscription_id, created_at, updated_at, deleted_at
`
type UpdateUserSubscriptionParams struct {
ID int32 `db:"id" json:"id"`
SubscriptionID pgtype.Int4 `db:"subscription_id" json:"subscription_id"`
}
func (q *Queries) UpdateUserSubscription(ctx context.Context, arg *UpdateUserSubscriptionParams) (*User, error) {
row := q.db.QueryRow(ctx, updateUserSubscription, arg.ID, arg.SubscriptionID)
var i User
err := row.Scan(
&i.ID,
&i.Name,
&i.Email,
&i.SubscriptionID,
&i.CreatedAt,
&i.UpdatedAt,
&i.DeletedAt,
)
return &i, err
}