Adding SMS automation
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { AutomationsModule } from '../automations/automations.module';
|
||||
import { MessageAutomationsModule } from '../message-automations/message-automations.module';
|
||||
import { FinanceModule } from '../finance/finance.module';
|
||||
import { InventoryModule } from '../inventory/inventory.module';
|
||||
import { InvoicesController } from './invoices.controller';
|
||||
import { InvoicesService } from './invoices.service';
|
||||
|
||||
@Module({
|
||||
imports: [AutomationsModule, InventoryModule, FinanceModule],
|
||||
imports: [AutomationsModule, MessageAutomationsModule, InventoryModule, FinanceModule],
|
||||
controllers: [InvoicesController],
|
||||
providers: [InvoicesService],
|
||||
exports: [InvoicesService],
|
||||
|
||||
@@ -17,6 +17,7 @@ import { Prisma } from '@prisma/client';
|
||||
import { PrismaService } from '../prisma/prisma.service';
|
||||
import { type Actor, ownerWhere } from '../common/record-scope';
|
||||
import { AutomationsService } from '../automations/automations.service';
|
||||
import { MessageAutomationsService } from '../message-automations/message-automations.service';
|
||||
import { InventoryService } from '../inventory/inventory.service';
|
||||
import { CommissionsService } from '../finance/commissions.service';
|
||||
|
||||
@@ -47,6 +48,7 @@ export class InvoicesService {
|
||||
constructor(
|
||||
private readonly prisma: PrismaService,
|
||||
private readonly automations: AutomationsService,
|
||||
private readonly messageAutomations: MessageAutomationsService,
|
||||
private readonly inventory: InventoryService,
|
||||
private readonly commissions: CommissionsService,
|
||||
) {}
|
||||
@@ -539,16 +541,18 @@ export class InvoicesService {
|
||||
if (invoice.status === 'draft') {
|
||||
await this.fireIssued(organizationId, row);
|
||||
}
|
||||
await this.automations.runTrigger('invoice_paid', {
|
||||
const paidCtx = {
|
||||
organizationId,
|
||||
entityType: 'invoice',
|
||||
entityType: 'invoice' as const,
|
||||
entityId: row.id,
|
||||
title: row.title || row.number,
|
||||
personId: row.person?.id ?? null,
|
||||
companyId: row.company?.id ?? null,
|
||||
dealId: row.deal?.id ?? null,
|
||||
ownerId: row.owner?.id ?? null,
|
||||
});
|
||||
};
|
||||
await this.automations.runTrigger('invoice_paid', paidCtx);
|
||||
await this.messageAutomations.onEvent('invoice_paid', paidCtx);
|
||||
return row;
|
||||
}
|
||||
|
||||
@@ -657,16 +661,18 @@ export class InvoicesService {
|
||||
}
|
||||
|
||||
private async fireIssued(organizationId: string, row: InvoiceDto) {
|
||||
await this.automations.runTrigger('invoice_issued', {
|
||||
const ctx = {
|
||||
organizationId,
|
||||
entityType: 'invoice',
|
||||
entityType: 'invoice' as const,
|
||||
entityId: row.id,
|
||||
title: row.title || row.number,
|
||||
personId: row.person?.id ?? null,
|
||||
companyId: row.company?.id ?? null,
|
||||
dealId: row.deal?.id ?? null,
|
||||
ownerId: row.owner?.id ?? null,
|
||||
});
|
||||
};
|
||||
await this.automations.runTrigger('invoice_issued', ctx);
|
||||
await this.messageAutomations.onEvent('invoice_issued', ctx);
|
||||
}
|
||||
|
||||
private async ensureExists(
|
||||
|
||||
Reference in New Issue
Block a user