85 lines
2.9 KiB
TypeScript
85 lines
2.9 KiB
TypeScript
// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0
|
|
// Generated from ./options.ts by the @convex-dev/better-auth schema generator: do not edit it by hand.
|
|
// After a change of the Better Auth options, regenerate it with
|
|
// pnpm exec vitest run test/better-auth.test.ts -u
|
|
// (the "local install" of @convex-dev/better-auth, which is how the admin plugin's fields get here).
|
|
|
|
import { defineSchema, defineTable } from "convex/server";
|
|
import { v } from "convex/values";
|
|
|
|
export const tables = {
|
|
user: defineTable({
|
|
name: v.string(),
|
|
email: v.string(),
|
|
emailVerified: v.boolean(),
|
|
image: v.optional(v.union(v.null(), v.string())),
|
|
createdAt: v.number(),
|
|
updatedAt: v.number(),
|
|
userId: v.optional(v.union(v.null(), v.string())),
|
|
role: v.optional(v.union(v.null(), v.string())),
|
|
banned: v.optional(v.union(v.null(), v.boolean())),
|
|
banReason: v.optional(v.union(v.null(), v.string())),
|
|
banExpires: v.optional(v.union(v.null(), v.number())),
|
|
})
|
|
.index("email_name", ["email","name"])
|
|
.index("name", ["name"])
|
|
.index("userId", ["userId"]),
|
|
session: defineTable({
|
|
expiresAt: v.number(),
|
|
token: v.string(),
|
|
createdAt: v.number(),
|
|
updatedAt: v.number(),
|
|
ipAddress: v.optional(v.union(v.null(), v.string())),
|
|
userAgent: v.optional(v.union(v.null(), v.string())),
|
|
userId: v.string(),
|
|
impersonatedBy: v.optional(v.union(v.null(), v.string())),
|
|
})
|
|
.index("expiresAt", ["expiresAt"])
|
|
.index("expiresAt_userId", ["expiresAt","userId"])
|
|
.index("token", ["token"])
|
|
.index("userId", ["userId"]),
|
|
account: defineTable({
|
|
accountId: v.string(),
|
|
providerId: v.string(),
|
|
userId: v.string(),
|
|
accessToken: v.optional(v.union(v.null(), v.string())),
|
|
refreshToken: v.optional(v.union(v.null(), v.string())),
|
|
idToken: v.optional(v.union(v.null(), v.string())),
|
|
accessTokenExpiresAt: v.optional(v.union(v.null(), v.number())),
|
|
refreshTokenExpiresAt: v.optional(v.union(v.null(), v.number())),
|
|
scope: v.optional(v.union(v.null(), v.string())),
|
|
password: v.optional(v.union(v.null(), v.string())),
|
|
createdAt: v.number(),
|
|
updatedAt: v.number(),
|
|
})
|
|
.index("accountId", ["accountId"])
|
|
.index("accountId_providerId", ["accountId","providerId"])
|
|
.index("providerId_userId", ["providerId","userId"])
|
|
.index("userId", ["userId"]),
|
|
verification: defineTable({
|
|
identifier: v.string(),
|
|
value: v.string(),
|
|
expiresAt: v.number(),
|
|
createdAt: v.number(),
|
|
updatedAt: v.number(),
|
|
})
|
|
.index("expiresAt", ["expiresAt"])
|
|
.index("identifier", ["identifier"]),
|
|
jwks: defineTable({
|
|
publicKey: v.string(),
|
|
privateKey: v.string(),
|
|
createdAt: v.number(),
|
|
expiresAt: v.optional(v.union(v.null(), v.number())),
|
|
}),
|
|
rateLimit: defineTable({
|
|
key: v.string(),
|
|
count: v.number(),
|
|
lastRequest: v.number(),
|
|
})
|
|
.index("key", ["key"]),
|
|
};
|
|
|
|
const schema = defineSchema(tables);
|
|
|
|
export default schema;
|