// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 // source: invites.sql package sqlcdb import ( "context" "database/sql" "time" "github.com/google/uuid" ) const createUserInvite = `-- name: CreateUserInvite :one INSERT INTO user_invites (token_hash, email, created_by, expires_at) VALUES ($1, $2, $3, $4) RETURNING user_invites.id, user_invites.token_hash, user_invites.email, user_invites.created_by, user_invites.expires_at, user_invites.used_by, user_invites.used_at, user_invites.created_at ` type CreateUserInviteParams struct { TokenHash string `json:"token_hash"` Email sql.NullString `json:"email"` CreatedBy uuid.NullUUID `json:"created_by"` ExpiresAt time.Time `json:"expires_at"` } func (q *Queries) CreateUserInvite(ctx context.Context, arg CreateUserInviteParams) (UserInvite, error) { row := q.db.QueryRowContext(ctx, createUserInvite, arg.TokenHash, arg.Email, arg.CreatedBy, arg.ExpiresAt, ) var i UserInvite err := row.Scan( &i.ID, &i.TokenHash, &i.Email, &i.CreatedBy, &i.ExpiresAt, &i.UsedBy, &i.UsedAt, &i.CreatedAt, ) return i, err } const deleteUserInvite = `-- name: DeleteUserInvite :exec DELETE FROM user_invites WHERE id = $1 ` func (q *Queries) DeleteUserInvite(ctx context.Context, id uuid.UUID) error { _, err := q.db.ExecContext(ctx, deleteUserInvite, id) return err } const getUserInviteByTokenHash = `-- name: GetUserInviteByTokenHash :one SELECT user_invites.id, user_invites.token_hash, user_invites.email, user_invites.created_by, user_invites.expires_at, user_invites.used_by, user_invites.used_at, user_invites.created_at FROM user_invites WHERE token_hash = $1 ` func (q *Queries) GetUserInviteByTokenHash(ctx context.Context, tokenHash string) (UserInvite, error) { row := q.db.QueryRowContext(ctx, getUserInviteByTokenHash, tokenHash) var i UserInvite err := row.Scan( &i.ID, &i.TokenHash, &i.Email, &i.CreatedBy, &i.ExpiresAt, &i.UsedBy, &i.UsedAt, &i.CreatedAt, ) return i, err } const listUserInvites = `-- name: ListUserInvites :many SELECT user_invites.id, user_invites.token_hash, user_invites.email, user_invites.created_by, user_invites.expires_at, user_invites.used_by, user_invites.used_at, user_invites.created_at FROM user_invites ORDER BY created_at DESC ` func (q *Queries) ListUserInvites(ctx context.Context) ([]UserInvite, error) { rows, err := q.db.QueryContext(ctx, listUserInvites) if err != nil { return nil, err } defer rows.Close() items := []UserInvite{} for rows.Next() { var i UserInvite if err := rows.Scan( &i.ID, &i.TokenHash, &i.Email, &i.CreatedBy, &i.ExpiresAt, &i.UsedBy, &i.UsedAt, &i.CreatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Close(); err != nil { return nil, err } if err := rows.Err(); err != nil { return nil, err } return items, nil } const markUserInviteUsed = `-- name: MarkUserInviteUsed :exec UPDATE user_invites SET used_by = $2, used_at = now() WHERE id = $1 AND used_at IS NULL ` type MarkUserInviteUsedParams struct { ID uuid.UUID `json:"id"` UsedBy uuid.NullUUID `json:"used_by"` } func (q *Queries) MarkUserInviteUsed(ctx context.Context, arg MarkUserInviteUsedParams) error { _, err := q.db.ExecContext(ctx, markUserInviteUsed, arg.ID, arg.UsedBy) return err }