import { BullModule } from '@nestjs/bullmq'
import { Module } from '@nestjs/common'
import { REDIS_OPTIONS } from '../../config'
import { GOOGLE_RESERVATIONS_QUEUES } from './queues'

@Module({
	imports: [
		BullModule.forRoot({
			connection: {
				host: REDIS_OPTIONS.HOST,
				port: REDIS_OPTIONS.PORT,
				db: REDIS_OPTIONS.DB,
			},
			defaultJobOptions: {
				attempts: 3,
				backoff: {
					type: 'exponential',
					delay: 10_000,
				},
				removeOnComplete: 100,
				removeOnFail: {
					count: 5000,
					age: 3600 * 24 * 7, // 7 days
				},
			},
		}),
		BullModule.registerQueue({
			name: GOOGLE_RESERVATIONS_QUEUES.SEND_REALTIME_UPDATE,
		}),
	],
})
export class QueueModule {}
