import { authTables } from '@convex-dev/auth/server'; import { defineSchema, defineTable } from 'convex/server'; import { v } from 'convex/values'; const applicationTables = { // Users contains name image & email. // If you would like to save any other information, // I would recommend including this profiles table // where you can include settings & anything else you would like tied to the user. profiles: defineTable({ userId: v.id('users'), theme_preference: v.optional(v.string()), }).index('userId', ['userId']), }; export default defineSchema({ ...authTables, // Default table for users directly from authTable. // You can extend it if you would like, but it may // be better to just use the profiles table example // below. users: defineTable({ name: v.optional(v.string()), image: v.optional(v.string()), email: v.optional(v.string()), emailVerificationTime: v.optional(v.number()), phone: v.optional(v.string()), phoneVerificationTime: v.optional(v.number()), isAnonymous: v.optional(v.boolean()), }) .index('email', ['email']) .index('name', ['name']) .index('phone', ['phone']), ...applicationTables, });