import manifest from './module.json' with { type: 'json' };

let runtime = null;
let started = false;

export function configurePublishingModule(deps = {}) {
  runtime = {
    start: deps.start || (() => {}),
    stop: deps.stop || (() => {}),
  };
}

export function createPublishingModule() {
  return {
    manifest,
    source: 'builtin',
    lifecycle: {
      async start() { if (!runtime) throw new Error('Publishing-Modul ist nicht konfiguriert.'); await runtime.start(); started = true; },
      async stop() { await runtime?.stop?.(); started = false; },
      async health() { return { ok: Boolean(runtime && started), native: true, queue: 'publishing-jobs' }; },
    },
  };
}
