import { settlementStuckRows } from './settlement-stuck-rows.js';
import { queueOpRate } from './queue-op-rate.js';
import { cronHeartbeat } from './cron-heartbeat.js';
import { settlementHoldsAged } from './settlement-holds-aged.js';
import { webhookIdempotencyStale } from './webhook-idempotency-stale.js';
import { dlqDepth } from './dlq-depth.js';
import { queueBacklog } from './queue-backlog.js';
import { externalDepLiveness } from './external-dep-liveness.js';
import { outboxAbandoned } from './outbox-abandoned.js';
import { affiliateNegativeWallets } from './affiliate-negative-wallets.js';
import type { CheckAdapter } from '../types.js';

export const CHECK_REGISTRY: CheckAdapter[] = [
  settlementStuckRows,
  queueOpRate,
  cronHeartbeat,
  settlementHoldsAged,
  webhookIdempotencyStale,
  dlqDepth,
  queueBacklog,
  externalDepLiveness,
  outboxAbandoned,
  affiliateNegativeWallets,
];

export function getCheckAdapter(key: string): CheckAdapter | null {
  return CHECK_REGISTRY.find((c) => c.key === key) ?? null;
}
