1import prisma from '@/server/db';
2import { UserList } from '@prisma/client';
3import 'server-only';
4
5/**
6 *
7 * @returns {number} Returns the largest order number in the list + 1
8 */
9export const normalizeOrderInList = async (
10 userList: UserList
11): Promise<number> => {
12 const listEntries = (
13 await prisma.userListEntry.findMany({
14 where: {
15 listId: userList.id,
16 },
17 })
18 ).sort((a, b) => a.order - b.order);
19
20 let idx = 0;
21 for (const listEntry of listEntries) {
22 await prisma.userListEntry.update({
23 where: {
24 id: listEntry.id,
25 },
26 data: {
27 order: idx,
28 },
29 });
30
31 idx++;
32 }
33
34 return idx + 1;
35};