--- import { Enums, prisma } from "#lib/server/prisma"; import UserLayout from "#layouts/DashboardLayout.astro"; import { getCurrentUser } from "#lib/server/user"; const page = Number(Astro.url.searchParams.get("p")); const user = await getCurrentUser(Astro); if (!user) { return Astro.redirect("/auth/login"); } const totalPageCount = await prisma.aufnahme.count({ where: user.rolle !== Enums.BenutzerRolle.ADMIN || Enums.BenutzerRolle.RESELLER ? { benutzer: { id: user.id, }, } : {}, }); if ((page < 1 || page > totalPageCount) && totalPageCount > 0) { return Astro.redirect("/dashboard/objekte?p=1"); } else if (totalPageCount === 0) { return Astro.redirect("/dashboard/objekte/leer"); } let result: { id: string; updated_at: Date }[] = []; // Wir fragen den neuesten Ausweis ab // Falls der Nutzer ein Admin ist dann kommt der ganz neueste ansonsten der neueste des eingeloggten Benutzers. if (user.rolle !== Enums.BenutzerRolle.ADMIN) { result = await prisma.$queryRaw`SELECT id, updated_at FROM "VerbrauchsausweisWohnen" WHERE benutzer_id = ${user.id} UNION ALL SELECT id, updated_at FROM "VerbrauchsausweisGewerbe" WHERE benutzer_id = ${user.id} UNION ALL SELECT id, updated_at FROM "BedarfsausweisWohnen" WHERE benutzer_id = ${user.id} UNION ALL SELECT id, updated_at FROM "BedarfsausweisGewerbe" WHERE benutzer_id = ${user.id} UNION ALL SELECT id, updated_at FROM "GEGNachweisWohnen" WHERE benutzer_id = ${user.id} UNION ALL SELECT id, updated_at FROM "GEGNachweisGewerbe" WHERE benutzer_id = ${user.id} ORDER BY updated_at DESC LIMIT 1 OFFSET ${page - 1}`; } else { result = await prisma.$queryRaw`SELECT id, updated_at FROM "VerbrauchsausweisWohnen" WHERE ausgestellt = ${false} AND bestellt = ${true} UNION ALL SELECT id, updated_at FROM "VerbrauchsausweisGewerbe" WHERE ausgestellt = ${false} AND bestellt = ${true} UNION ALL SELECT id, updated_at FROM "BedarfsausweisWohnen" WHERE ausgestellt = ${false} AND bestellt = ${true} UNION ALL SELECT id, updated_at FROM "BedarfsausweisGewerbe" UNION ALL SELECT id, updated_at FROM "GEGNachweisWohnen" UNION ALL SELECT id, updated_at FROM "GEGNachweisGewerbe" ORDER BY updated_at DESC LIMIT 1 OFFSET ${page - 1}`; } if (result.length > 0) { return Astro.redirect(`/dashboard/objekte/${result[0].id}?p=${page}`) } ---