// Schema
export const submissionFields = {
userId: v.id('users'),
profileIndex: v.number(),
videoId: v.id('videos'),
// Details
title: v.optional(v.string()),
storageId: v.id('_storage'),
// Settings
privacy: v.optional(v.union(v.literal('public'), v.literal('private'))),
isApproved: v.boolean(),
}
// Mutation example
const { userId, ...fields } = submissionFields
export const update = mutation({
args: {
id: v.id('submissions'),
...fields,
},
handler: async (ctx, { id, ...fields }) => {
const user = await authenticateUser(ctx)
if (!user) {
throw new Error('User not authenticated')
}
return await ctx.db.patch(id, {
...fields,
})
},
})
// Schema
export const submissionFields = {
userId: v.id('users'),
profileIndex: v.number(),
videoId: v.id('videos'),
// Details
title: v.optional(v.string()),
storageId: v.id('_storage'),
// Settings
privacy: v.optional(v.union(v.literal('public'), v.literal('private'))),
isApproved: v.boolean(),
}
// Mutation example
const { userId, ...fields } = submissionFields
export const update = mutation({
args: {
id: v.id('submissions'),
...fields,
},
handler: async (ctx, { id, ...fields }) => {
const user = await authenticateUser(ctx)
if (!user) {
throw new Error('User not authenticated')
}
return await ctx.db.patch(id, {
...fields,
})
},
})