import { dbPresetData } from "$lib/server/db/presetdata.db"; import { logger } from "$lib/server/logger"; import { zDDFilters, zPresetDataEntry } from "$lib/utils/data.types"; import { z } from "zod"; import { createTRPCRouter, protectedProcedure } from "../t"; export const presetDataRouter = createTRPCRouter({ getAll: protectedProcedure.input(zDDFilters).mutation(async ({ input }) => { const { draw, date } = input; if (!draw) { logger.warn("[presetData.getAll] Draw is required but not provided"); return { ok: false, detail: "Draw is required to fetch data", data: [] }; } logger.info(`[presetData.getAll] Fetching preset data for draw ${draw.id}, date ${date}`); const data = await dbPresetData.getDataByDraw(date, +draw.id.split(":")[1]); logger.info(`[presetData.getAll] Found ${data.length} preset data entries`); return { data, ok: true, detail: "Data found", }; }), insert: protectedProcedure.input(z.array(zPresetDataEntry)).mutation(async ({ input }) => { logger.info(`[presetData.insert] Inserting ${input.length} preset data entries`); const data = await dbPresetData.insertData(input); logger.info(`[presetData.insert] Successfully inserted ${data?.length} entries`); return { ok: true, detail: "Data inserted", data, }; }), delete: protectedProcedure .input(z.object({ date: z.string(), ids: z.array(z.string()) })) .mutation(async ({ input }) => { logger.info( `[presetData.delete] Deleting ${input.ids.length} preset data entries for date ${input.date}`, ); await dbPresetData.deleteDataByIds(input.date, input.ids); logger.info("[presetData.delete] Successfully deleted preset data entries"); return { ok: true, detail: "Data deleted" }; }), });