export const list = query({
args: { receiverId: v.id('users') },
handler: async (ctx, { receiverId }) => {
const [active, prioritized, queue, processed] = await Promise.all([
ctx.db
.query('tickets')
.withIndex('byReceiverIdAndIsActive', (q) =>
q.eq('receiverId', receiverId).eq('isActive', true)
)
.first(),
ctx.db
.query('tickets')
.withIndex('byReceiverIdAndIsActiveAndIsPrioritizedAndIsProcessed', (q) =>
q
.eq('receiverId', receiverId)
.eq('isActive', false)
.eq('isPrioritized', true)
.eq('isProcessed', false)
)
.order('asc')
.collect(),
ctx.db
.query('tickets')
.withIndex('byReceiverIdAndIsActiveAndIsPrioritizedAndIsProcessed', (q) =>
q
.eq('receiverId', receiverId)
.eq('isActive', false)
.eq('isPrioritized', false)
.eq('isProcessed', false)
)
.order('asc')
.collect(),
ctx.db
.query('tickets')
.withIndex('byReceiverIdAndIsProcessed', (q) =>
q.eq('receiverId', receiverId).eq('isProcessed', true)
)
.order('desc')
.collect(),
]);
...
export const list = query({
args: { receiverId: v.id('users') },
handler: async (ctx, { receiverId }) => {
const [active, prioritized, queue, processed] = await Promise.all([
ctx.db
.query('tickets')
.withIndex('byReceiverIdAndIsActive', (q) =>
q.eq('receiverId', receiverId).eq('isActive', true)
)
.first(),
ctx.db
.query('tickets')
.withIndex('byReceiverIdAndIsActiveAndIsPrioritizedAndIsProcessed', (q) =>
q
.eq('receiverId', receiverId)
.eq('isActive', false)
.eq('isPrioritized', true)
.eq('isProcessed', false)
)
.order('asc')
.collect(),
ctx.db
.query('tickets')
.withIndex('byReceiverIdAndIsActiveAndIsPrioritizedAndIsProcessed', (q) =>
q
.eq('receiverId', receiverId)
.eq('isActive', false)
.eq('isPrioritized', false)
.eq('isProcessed', false)
)
.order('asc')
.collect(),
ctx.db
.query('tickets')
.withIndex('byReceiverIdAndIsProcessed', (q) =>
q.eq('receiverId', receiverId).eq('isProcessed', true)
)
.order('desc')
.collect(),
]);
...