auth/invite_queries.ts view source
(deps: QueryDeps, input: CreateInviteInput): Promise<Invite> Create a new invite.
deps
query dependencies
input
the invite fields
returns
Promise<Invite> the created invite
Invite database queries.
CRUD operations for the invite table — creating invites, finding unclaimed matches, claiming, and cleanup.
8 declarations
auth/invite_queries.ts view source
(deps: QueryDeps, input: CreateInviteInput): Promise<Invite> Create a new invite.
depsquery dependencies
inputthe invite fields
Promise<Invite> the created invite
auth/invite_queries.ts view source
(deps: QueryDeps, invite_id: string, account_id: string): Promise<boolean> Claim an invite by setting the claimed_by and claimed_at fields.
depsquery dependencies
invite_idthe invite to claim
stringaccount_idthe account claiming the invite
stringPromise<boolean> true if the invite was claimed, false if already claimed or not found
auth/invite_queries.ts view source
(deps: QueryDeps, id: string): Promise<boolean> Delete an unclaimed invite.
depsquery dependencies
idthe invite id
stringPromise<boolean> true if deleted, false if not found or already claimed
auth/invite_queries.ts view source
(deps: QueryDeps, email: string): Promise<Invite | undefined> Find an unclaimed invite by email (case-insensitive).
depsemailstringPromise<Invite | undefined> auth/invite_queries.ts view source
(deps: QueryDeps, username: string): Promise<Invite | undefined> Find an unclaimed invite by username (case-insensitive).
depsusernamestringPromise<Invite | undefined> auth/invite_queries.ts view source
(deps: QueryDeps, email: string | null, username: string): Promise<Invite | undefined> Find an unclaimed invite matching email and/or username using three scoping modes:
- Email-only invite (email set, username NULL) → matches only if signup provides matching email. - Username-only invite (username set, email NULL) → matches only if signup provides matching username. - Both-field invite (both set) → requires BOTH email and username to match.
depsquery dependencies
emailemail to match (or null if signup provides none)
string | nullusernameusername to match
stringPromise<Invite | undefined> the matching invite, or undefined
auth/invite_queries.ts view source
(deps: QueryDeps): Promise<Invite[]> List all invites, newest first.
depsPromise<Invite[]> auth/invite_queries.ts view source
(deps: QueryDeps): Promise<{ id: string; email: string | null; username: string | null; claimed_by: string | null; claimed_at: string | null; created_at: string; created_by: string | null; created_by_username: string | null; claimed_by_username: string | null; }[]> List all invites with resolved creator/claimer usernames, newest first.
depsquery dependencies
Promise<{ id: string; email: string | null; username: string | null; claimed_by: string | null; claimed_at: string | null; created_at: string; created_by: string | null; created_by_username: string | null; claimed_by_username: string | null; }[]> invites with created_by_username and claimed_by_username