38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import { defineSchema, defineTable } from "convex/server";
|
|
import { v } from "convex/values";
|
|
import { authTables } from "@convex-dev/auth/server";
|
|
|
|
const schema = defineSchema({
|
|
...authTables,
|
|
projects: defineTable({
|
|
userId: v.id("users"),
|
|
name: v.string(),
|
|
isDefault: v.boolean(),
|
|
dorkingConfig: v.object({
|
|
selectedSourceIds: v.array(v.id("dataSources")),
|
|
}),
|
|
}),
|
|
dataSources: defineTable({
|
|
projectId: v.id("projects"),
|
|
type: v.literal("website"),
|
|
url: v.string(),
|
|
name: v.string(),
|
|
analysisStatus: v.union(
|
|
v.literal("pending"),
|
|
v.literal("completed"),
|
|
v.literal("failed")
|
|
),
|
|
analysisResults: v.optional(
|
|
v.object({
|
|
features: v.array(v.string()),
|
|
painPoints: v.array(v.string()),
|
|
keywords: v.array(v.string()),
|
|
summary: v.string(),
|
|
})
|
|
),
|
|
metadata: v.optional(v.any()),
|
|
}),
|
|
});
|
|
|
|
export default schema;
|