mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-08 18:18:18 +00:00
feat: ( reschedule ) implement booking reschedule
This commit is contained in:
@@ -5,6 +5,7 @@ import { PrismaService } from '../../common/prisma.service';
|
||||
import { SmsClientService } from '../notifications/sms-client.service';
|
||||
import { CurrencyService } from '../currency/currency.service';
|
||||
import { PaymentsService } from '../payments/payments.service';
|
||||
import { RescheduleService } from '../reschedule/reschedule.service';
|
||||
import { MAX_PAYMENT_HOURS, CUTOFF_MINUTES, computePaymentDeadline } from '../../common/utils/payment-deadline.utils';
|
||||
|
||||
// Retention windows
|
||||
@@ -510,6 +511,21 @@ export class TasksService {
|
||||
// ─────────────────────────────────────────────────────────────────────────
|
||||
// Daily at 02:00 EAT: purge expired/stale records to enforce data retention.
|
||||
// ─────────────────────────────────────────────────────────────────────────
|
||||
// ─────────────────────────────────────────────────────────────────────────
|
||||
// Every 1 min: reschedule requests whose payment deadline passed → EXPIRED
|
||||
// (their supplementary charge too). The new-seat hold lapses on its own.
|
||||
// ─────────────────────────────────────────────────────────────────────────
|
||||
@Cron('*/1 * * * *')
|
||||
async expireStaleReschedules() {
|
||||
try {
|
||||
const reschedule = await this.moduleRef.resolve(RescheduleService, undefined, { strict: false });
|
||||
const n = await reschedule.expireStale();
|
||||
if (n > 0) this.logger.log(`Expired ${n} unpaid reschedule request(s)`);
|
||||
} catch (err) {
|
||||
this.logger.error(`expireStaleReschedules failed: ${err instanceof Error ? err.message : err}`);
|
||||
}
|
||||
}
|
||||
|
||||
@Cron('0 2 * * *')
|
||||
async purgeExpiredData() {
|
||||
const now = new Date();
|
||||
|
||||
Reference in New Issue
Block a user