/** * trigger 的 sys schema 表(编码规范 §7 / ADR-002)。 * 触发器配置**独立存放**于系统自持存储 —— 不入流程包结构、不随流程包版本(OS 3.1)。 */ import { boolean, index, jsonb, text, timestamp } from 'drizzle-orm/pg-core'; import { sys } from '@shared/db.ts'; export const triggerTable = sys.table( 'trigger', { id: text('id').primaryKey(), name: text('name').notNull(), enabled: boolean('enabled').notNull().default(true), processPackageId: text('process_package_id').notNull(), mapping: jsonb('mapping').notNull().default([]), spec: jsonb('spec').notNull(), lastFiredAt: timestamp('last_fired_at', { withTimezone: true }), createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(), }, (t) => [index('trigger_enabled_idx').on(t.enabled)], ); /** 起单幂等表:同一事件对同一触发器至多起一单 */ export const triggerClaimTable = sys.table('trigger_claim', { key: text('key').primaryKey(), claimedAt: timestamp('claimed_at', { withTimezone: true }).notNull().defaultNow(), });