refactor: rename Recipient to Person, remove username, add userId FK
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
import type { Prisma, Person } from "@/generated/prisma/client"
|
||||
import { paginate } from "@/lib/paginate"
|
||||
import prisma from "@/lib/prisma"
|
||||
|
||||
export const PersonService = {
|
||||
findAll: async (): Promise<Person[]> => {
|
||||
return prisma.person.findMany({
|
||||
orderBy: {
|
||||
firstName: "asc",
|
||||
},
|
||||
})
|
||||
},
|
||||
findAllPaginated: async ({
|
||||
page = 0,
|
||||
pageSize,
|
||||
search,
|
||||
}: {
|
||||
page?: number
|
||||
pageSize?: number
|
||||
search?: string
|
||||
}) => {
|
||||
return paginate<Person>({
|
||||
model: prisma.person,
|
||||
page,
|
||||
pageSize,
|
||||
where: {
|
||||
...(search
|
||||
? {
|
||||
OR: [
|
||||
{ email: { contains: search, mode: "insensitive" } },
|
||||
{ firstName: { contains: search, mode: "insensitive" } },
|
||||
{ lastName: { contains: search, mode: "insensitive" } },
|
||||
],
|
||||
}
|
||||
: {}),
|
||||
},
|
||||
})
|
||||
},
|
||||
findAllPeopleCount: async (): Promise<number> => {
|
||||
return prisma.person.count()
|
||||
},
|
||||
|
||||
findById: async (
|
||||
id: string,
|
||||
db: Prisma.TransactionClient | typeof prisma = prisma,
|
||||
): Promise<Person | null> => {
|
||||
return db.person.findUnique({ where: { id } })
|
||||
},
|
||||
|
||||
findByEmail: async (
|
||||
email: string,
|
||||
db: Prisma.TransactionClient | typeof prisma = prisma,
|
||||
): Promise<Person | null> => {
|
||||
return db.person.findUnique({ where: { email } })
|
||||
},
|
||||
|
||||
create: async (
|
||||
data: Prisma.PersonCreateInput,
|
||||
db: Prisma.TransactionClient | typeof prisma = prisma,
|
||||
): Promise<Person> => {
|
||||
return db.person.create({ data })
|
||||
},
|
||||
|
||||
update: async (
|
||||
id: string,
|
||||
data: Prisma.PersonUpdateInput,
|
||||
db: Prisma.TransactionClient | typeof prisma = prisma,
|
||||
): Promise<Person> => {
|
||||
return db.person.update({ where: { id }, data })
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user