import { db } from '~/db' export default abstract class Query { static async listUser() { const user = await db.query.users.findMany({ where: (u, { isNull }) => isNull(u.deletedAt), }) return user } static async getUserById(id: number) { const user = await db.query.users.findFirst({ columns: { deletedAt: false, }, where: (u, { and, eq, isNull }) => and( eq(u.id, id), isNull(u.deletedAt), ), }) return user } static async getUserByEmail(email: string) { const user = await db.query.users.findFirst({ columns: { deletedAt: false, }, where: (u, { and, eq, isNull }) => and( eq(u.email, email), isNull(u.deletedAt), ), }) return user } static async getUserByName(name: string) { const user = await db.query.users.findFirst({ columns: { deletedAt: false, }, where: (u, { and, eq, isNull }) => and( eq(u.name, name), isNull(u.deletedAt), ), }) return user } }