diff --git a/src/routes/tickets.ts b/src/routes/tickets.ts index 311900e..f1fbd0e 100644 --- a/src/routes/tickets.ts +++ b/src/routes/tickets.ts @@ -73,12 +73,21 @@ export function createTicketsRouter(db: Db): Hono { const cfValues = await db.query.customFieldValues.findMany({ where: eq(customFieldValues.ticket_id, id), - with: { - customField: true, - }, }); - return c.json({ ...ticket, custom_fields: cfValues }); + const cfIds = [...new Set(cfValues.map(v => v.custom_field_id))]; + const cfRecords = cfIds.length > 0 + ? await db.query.customFields.findMany({ + where: (fields, { inArray }) => inArray(fields.id, cfIds), + }) + : []; + const cfMap = new Map(cfRecords.map(cf => [cf.id, cf])); + const customFieldsMapped = cfValues.map(v => ({ + ...v, + custom_field: cfMap.get(v.custom_field_id) ?? null, + })); + + return c.json({ ...ticket, custom_fields: customFieldsMapped }); }); // PATCH /:id — update ticket diff --git a/src/scrip/engine.ts b/src/scrip/engine.ts index 3690b32..8cc3350 100644 --- a/src/scrip/engine.ts +++ b/src/scrip/engine.ts @@ -46,8 +46,6 @@ export class ScripEngine { return []; } - const transactionTypes = [...new Set(transactions.map((tx) => tx.transaction_type))]; - const allScrips = await this.db.query.scrips.findMany({ orderBy: asc(scrips.sort_order), }); @@ -55,7 +53,6 @@ export class ScripEngine { const matchingScrips = allScrips.filter((scrip) => { if (scrip.disabled) return false; if (scrip.queue_id !== null && scrip.queue_id !== ticketRecord.queue_id) return false; - if (!transactionTypes.includes(scrip.condition_type)) return false; return true; });