import { Injectable, Logger } from '@nestjs/common';
import type { AutomationJobData } from './automation-job-data';
import type { QueuePort } from './queue-port';

@Injectable()
export class NoopAutomationQueuePort implements QueuePort {
  private readonly logger = new Logger(NoopAutomationQueuePort.name);

  enqueue(
    data: AutomationJobData,
  ): Promise<{ id: string | null; degraded: boolean }> {
    this.logger.warn(
      `automation.queue.degraded runId=${data.runId} automationId=${data.automationId} nodeKey=${data.nodeKey}`,
    );
    return Promise.resolve({ id: null, degraded: true });
  }

  isAvailable(): boolean {
    return false;
  }
}
