refactor: rename Recipient to Person, remove username, add userId FK

This commit is contained in:
2026-06-16 10:04:24 +02:00
parent befe1f3f82
commit d67f31cf54
27 changed files with 751 additions and 628 deletions
+71
View File
@@ -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 })
},
}