import { Process, Processor } from '@nestjs/bull'; import { Logger } from '@nestjs/common'; import { Job } from 'bull'; import { ExportsService, ExportJobData } from './exports.service'; @Processor('exports') export class ExportsProcessor { private readonly logger = new Logger(ExportsProcessor.name); constructor(private readonly exportsService: ExportsService) {} @Process('generate-export') async handleExport(job: Job): Promise { this.logger.log( `Processing export job ${job.data.jobId} for store ${job.data.storeId}`, ); try { await this.exportsService.processExport(job.data); this.logger.log(`Export job ${job.data.jobId} completed successfully`); } catch (error) { this.logger.error( `Export job ${job.data.jobId} failed: ${error instanceof Error ? error.message : 'Unknown error'}`, error instanceof Error ? error.stack : undefined, ); throw error; } } }