mirror of
https://github.com/multica-ai/multica.git
synced 2026-06-17 11:48:42 +02:00
- Add migration 106: CREATE INDEX CONCURRENTLY on member(user_id, workspace_id) - Rewrite ListWorkspaces to drive from member table with explicit fields - Regenerate all sqlc code with v1.31.1 (intentional version upgrade) Co-authored-by: multica-agent <github@multica.ai>
119 lines
2.9 KiB
Go
119 lines
2.9 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.31.1
|
|
// source: verification_code.sql
|
|
|
|
package db
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
const createVerificationCode = `-- name: CreateVerificationCode :one
|
|
INSERT INTO verification_code (email, code, expires_at)
|
|
VALUES ($1, $2, $3)
|
|
RETURNING id, email, code, expires_at, used, created_at, attempts
|
|
`
|
|
|
|
type CreateVerificationCodeParams struct {
|
|
Email string `json:"email"`
|
|
Code string `json:"code"`
|
|
ExpiresAt pgtype.Timestamptz `json:"expires_at"`
|
|
}
|
|
|
|
func (q *Queries) CreateVerificationCode(ctx context.Context, arg CreateVerificationCodeParams) (VerificationCode, error) {
|
|
row := q.db.QueryRow(ctx, createVerificationCode, arg.Email, arg.Code, arg.ExpiresAt)
|
|
var i VerificationCode
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Email,
|
|
&i.Code,
|
|
&i.ExpiresAt,
|
|
&i.Used,
|
|
&i.CreatedAt,
|
|
&i.Attempts,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const deleteExpiredVerificationCodes = `-- name: DeleteExpiredVerificationCodes :exec
|
|
DELETE FROM verification_code
|
|
WHERE expires_at < now() - interval '1 hour'
|
|
`
|
|
|
|
func (q *Queries) DeleteExpiredVerificationCodes(ctx context.Context) error {
|
|
_, err := q.db.Exec(ctx, deleteExpiredVerificationCodes)
|
|
return err
|
|
}
|
|
|
|
const getLatestCodeByEmail = `-- name: GetLatestCodeByEmail :one
|
|
SELECT id, email, code, expires_at, used, created_at, attempts FROM verification_code
|
|
WHERE email = $1
|
|
ORDER BY created_at DESC
|
|
LIMIT 1
|
|
`
|
|
|
|
func (q *Queries) GetLatestCodeByEmail(ctx context.Context, email string) (VerificationCode, error) {
|
|
row := q.db.QueryRow(ctx, getLatestCodeByEmail, email)
|
|
var i VerificationCode
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Email,
|
|
&i.Code,
|
|
&i.ExpiresAt,
|
|
&i.Used,
|
|
&i.CreatedAt,
|
|
&i.Attempts,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getLatestVerificationCode = `-- name: GetLatestVerificationCode :one
|
|
SELECT id, email, code, expires_at, used, created_at, attempts FROM verification_code
|
|
WHERE email = $1
|
|
AND used = FALSE
|
|
AND expires_at > now()
|
|
AND attempts < 5
|
|
ORDER BY created_at DESC
|
|
LIMIT 1
|
|
`
|
|
|
|
func (q *Queries) GetLatestVerificationCode(ctx context.Context, email string) (VerificationCode, error) {
|
|
row := q.db.QueryRow(ctx, getLatestVerificationCode, email)
|
|
var i VerificationCode
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Email,
|
|
&i.Code,
|
|
&i.ExpiresAt,
|
|
&i.Used,
|
|
&i.CreatedAt,
|
|
&i.Attempts,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const incrementVerificationCodeAttempts = `-- name: IncrementVerificationCodeAttempts :exec
|
|
UPDATE verification_code
|
|
SET attempts = attempts + 1
|
|
WHERE id = $1
|
|
`
|
|
|
|
func (q *Queries) IncrementVerificationCodeAttempts(ctx context.Context, id pgtype.UUID) error {
|
|
_, err := q.db.Exec(ctx, incrementVerificationCodeAttempts, id)
|
|
return err
|
|
}
|
|
|
|
const markVerificationCodeUsed = `-- name: MarkVerificationCodeUsed :exec
|
|
UPDATE verification_code
|
|
SET used = TRUE
|
|
WHERE id = $1
|
|
`
|
|
|
|
func (q *Queries) MarkVerificationCodeUsed(ctx context.Context, id pgtype.UUID) error {
|
|
_, err := q.db.Exec(ctx, markVerificationCodeUsed, id)
|
|
return err
|
|
}
|