import prisma from '../utilities/prisma' // Import the global Prisma instance import { Tile } from '@prisma/client' import zoneRepository from './zoneRepository' import { unduplicateArray } from '../utilities/utilities' import { FlattenZoneArray } from '../utilities/zone' class TileRepository { async getById(id: string): Promise { return prisma.tile.findUnique({ where: { id } }) } async getByIds(ids: string[]): Promise { return prisma.tile.findMany({ where: { id: { in: ids } } }) } async getAll(): Promise { return prisma.tile.findMany() } async getByZoneId(zoneId: number): Promise { const zone = await zoneRepository.getById(zoneId) if (!zone) return [] const zoneTileArray = unduplicateArray(FlattenZoneArray(JSON.parse(JSON.stringify(zone.tiles)))) return this.getByIds(zoneTileArray) } } export default new TileRepository()