import { Zone } from '@prisma/client' import prisma from '../utilities/prisma' // Import the global Prisma instance class ZoneRepository { async getFirst(): Promise { try { return await prisma.zone.findFirst() } catch (error: any) { // Handle error throw new Error(`Failed to get first zone: ${error.message}`) } } async getAll(): Promise { try { return await prisma.zone.findMany() } catch (error: any) { // Handle error throw new Error(`Failed to get all zone: ${error.message}`) } } async getById(id: number) { try { return await prisma.zone.findUnique({ where: { id: id }, include: { zoneEventTiles: { include: { zone: true } }, zoneObjects: { include: { object: true } } } }) } catch (error: any) { // Handle error throw new Error(`Failed to get zone by id: ${error.message}`) } } async getEventTiles(id: number) { try { return await prisma.zoneEventTile.findMany({ where: { zoneId: id } }) } catch (error: any) { // Handle error throw new Error(`Failed to get zone event tiles: ${error.message}`) } } async getObjects(id: number) { try { return await prisma.zoneObject.findMany({ where: { zoneId: id } }) } catch (error: any) { // Handle error throw new Error(`Failed to get zone objects: ${error.message}`) } } } export default new ZoneRepository()