templete campain

This commit is contained in:
2026-07-11 22:08:41 +03:30
parent bf4e4c8d65
commit b1da7fdeac
19 changed files with 867 additions and 37 deletions
+12 -3
View File
@@ -9,7 +9,6 @@ import { CampaignTargetingService } from './campaign-targeting.service';
import { CampaignsService } from './campaigns.service';
import { CampaignTrigger } from './enums/campaign-trigger.enum';
import { CampaignType } from './enums/campaign-type.enum';
import { getCampaignTypeDefinition } from './constants/campaign-types.constants';
@Injectable()
export class CampaignAutomationService {
@@ -115,9 +114,16 @@ export class CampaignAutomationService {
}
try {
const definition = getCampaignTypeDefinition(type);
const defaultTemplate =
await this.campaignsService.getDefaultTemplateForType(type);
if (!defaultTemplate) {
throw new Error('No active template configured for this campaign');
}
const smsParts = await this.campaignsService.calculateCampaignSmsParts(
definition.scenarioKey,
defaultTemplate.templateId,
defaultTemplate.template.body,
{ discountPercent: null, discountAmount: null },
salon,
targets,
);
@@ -142,6 +148,9 @@ export class CampaignAutomationService {
trigger: CampaignTrigger.AUTOMATIC,
targets,
triggeredByUserId: null,
templateId: (
await this.campaignsService.getDefaultTemplateForType(type)
)?.templateId,
});
return true;