import { Event } from "@atp/sync"; import { Logger } from "@logtape/logtape"; import { Database } from "../db/connection.ts"; /** Context passed to collection handlers */ export interface HandlerContext { db: Database; logger: Logger; } /** Handler for a specific collection's events */ export interface CollectionHandler { collection: string; handleInsert?: ( ctx: HandlerContext, evt: Event & { event: "create" | "update" }, ) => Promise; handleDelete?: ( ctx: HandlerContext, evt: Event & { event: "delete" }, ) => Promise; }