import { TABLE_NAMES, ch } from '../../clickhouse-client'; import type { IClickhouseBotEvent } from '../../services/event.service'; import type { Find, FindMany, OnCompleted, OnInsert, ProcessQueue, } from './buffer'; import { RedisBuffer } from './buffer'; export class BotBuffer extends RedisBuffer { constructor() { super({ table: TABLE_NAMES.events_bots, batchSize: 100, }); } public onInsert?: OnInsert | undefined; public onCompleted?: OnCompleted | undefined; public processQueue: ProcessQueue = async (queue) => { await ch.insert({ table: TABLE_NAMES.events_bots, values: queue.map((item) => item.event), format: 'JSONEachRow', }); return queue.map((item) => item.index); }; public findMany: FindMany = () => { return Promise.resolve([]); }; public find: Find = () => { return Promise.resolve(null); }; }