import { forwardRef, Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { DiscoveryModule } from '@nestjs/core'; import { WorkflowAutomation } from './entity/workflow-automation.entity'; import { WorkflowAutomationController } from './controller/workflow-automation.controller'; import { WorkflowAutomationEngineService } from './service/workflow-automation-engine.service'; import { FilterModule } from '../filter/filter.module'; import { WorkflowAutomationService } from './service/workflow-automation.service'; import { WorkflowAutomationActionEntity } from './entity/workflow-automation-action.entity'; import { EntityModule } from '../meta/entity.module'; import { ActionRegistryService } from './service/action-registery.service'; import { ScheduleHandlerService } from './service/schedule-handler.service'; import { ScheduledWorkflow } from '../workflow-schedule/entities/scheduled-workflow.entity'; import { WorkflowExecutionLog } from '../workflow-schedule/entities/workflow-execution-log.entity'; import {EntityMaster} from "../meta/entity/entity-master.entity"; import { ListMasterData } from '../listmaster/entity/list-master.entity'; import { ActionCategory } from '../workflow/entity/action-category.entity'; import { WorkflowScheduleModule } from '../workflow-schedule/workflow-schedule.module'; @Module({ imports: [ TypeOrmModule.forFeature([ WorkflowAutomation, WorkflowAutomationActionEntity, ScheduledWorkflow, // 👈 Required by WorkflowAutomationService WorkflowExecutionLog, // 👈 May be used by services EntityMaster, ListMasterData, ActionCategory ]), FilterModule, forwardRef(() => EntityModule), DiscoveryModule, // 👈 enables provider scanning ], providers: [ WorkflowAutomationEngineService, { provide: 'WorkflowAutomationService', useClass: WorkflowAutomationService, }, { provide: 'ScheduleHandlerService', useClass: ScheduleHandlerService, }, ActionRegistryService, // 👈 auto-registers actions ], exports: [ WorkflowAutomationEngineService, 'WorkflowAutomationService', 'ScheduleHandlerService', ], controllers: [WorkflowAutomationController], }) export class WorkflowAutomationModule {}