export function queryUser({ userId }: { userId: number }) {
return db.query.usersTable.findFirst({
where: (t, { eq }) => eq(t.id, userId),
with: {
questions: {
with: {
answers: {
columns: {
id: true,
authorId: true,
},
},
usersLikes: {
columns: {
questionId: true,
userId: true,
},
},
usersViews: {
columns: {
questionId: true,
},
},
},
},
},
extras: (t) => ({
// a number of "answers" (table, see above) whose "authorId" === t.id
// should return an integer 0/1/2/3/4/5/...
acceptedAnswers: count(t.id).as('accepted_answers'),
}),
})
}
export function queryUser({ userId }: { userId: number }) {
return db.query.usersTable.findFirst({
where: (t, { eq }) => eq(t.id, userId),
with: {
questions: {
with: {
answers: {
columns: {
id: true,
authorId: true,
},
},
usersLikes: {
columns: {
questionId: true,
userId: true,
},
},
usersViews: {
columns: {
questionId: true,
},
},
},
},
},
extras: (t) => ({
// a number of "answers" (table, see above) whose "authorId" === t.id
// should return an integer 0/1/2/3/4/5/...
acceptedAnswers: count(t.id).as('accepted_answers'),
}),
})
}