// src/module/workflow-automation/service/action-registry.service.ts import { Injectable, OnModuleInit } from '@nestjs/common'; import { DiscoveryService, ModuleRef, Reflector } from '@nestjs/core'; import { WorkflowAutomationEngineService } from './workflow-automation-engine.service'; import { Action } from '../interface/action.interface'; import { ACTION_HANDLER } from '../interface/action.decorator'; @Injectable() export class ActionRegistryService implements OnModuleInit { constructor( private readonly discoveryService: DiscoveryService, private readonly moduleRef: ModuleRef, private readonly reflector: Reflector, private readonly engine: WorkflowAutomationEngineService, ) {} onModuleInit() { const providers = this.discoveryService.getProviders(); for (const wrapper of providers) { const { instance } = wrapper; if (!instance) continue; const actionName = this.reflector.get( ACTION_HANDLER, instance.constructor, ); if (actionName) { this.engine.registerAction(actionName, instance as Action); console.log(`✅ Registered action handler: ${actionName}`); } } } }