Merge remote-tracking branch 'origin/dev' into feat/notification-center-dc-v3
# Conflicts: # components/notifications/package.json
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@coopenomics/notifications",
|
||||
"version": "2026.5.30-alpha-2",
|
||||
"version": "2026.6.5-2",
|
||||
"description": "Каталог типобезопасных типов уведомлений и шаблонов Центра уведомлений",
|
||||
"type": "module",
|
||||
"private": false,
|
||||
|
||||
@@ -7,6 +7,7 @@ import { workflow as approvalRequestWorkflow } from './approval-request';
|
||||
import { workflow as decisionApprovedWorkflow } from './decision-approved';
|
||||
import { workflow as paymentPaidWorkflow } from './payment-paid';
|
||||
import { workflow as paymentCancelledWorkflow } from './payment-cancelled';
|
||||
import { workflow as paymentRefundedWorkflow } from './payment-refunded';
|
||||
import { workflow as meetInitialWorkflow } from './meet-initial';
|
||||
import { workflow as meetReminderStartWorkflow } from './meet-reminder-start';
|
||||
import { workflow as meetStartedWorkflow } from './meet-started';
|
||||
@@ -32,6 +33,7 @@ export * as ApprovalRequest from './approval-request';
|
||||
export * as DecisionApproved from './decision-approved';
|
||||
export * as PaymentPaid from './payment-paid';
|
||||
export * as PaymentCancelled from './payment-cancelled';
|
||||
export * as PaymentRefunded from './payment-refunded';
|
||||
export * as MeetInitial from './meet-initial';
|
||||
export * as MeetReminderStart from './meet-reminder-start';
|
||||
export * as MeetStarted from './meet-started';
|
||||
@@ -58,6 +60,7 @@ export const allWorkflows: WorkflowDefinition[] = [
|
||||
decisionApprovedWorkflow,
|
||||
paymentPaidWorkflow,
|
||||
paymentCancelledWorkflow,
|
||||
paymentRefundedWorkflow,
|
||||
meetInitialWorkflow,
|
||||
meetReminderStartWorkflow,
|
||||
meetStartedWorkflow,
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
|
||||
import { WorkflowDefinition } from '../../types';
|
||||
import { WorkflowBuilder } from '../../base/workflow-builder';
|
||||
import { z } from 'zod';
|
||||
import { BaseWorkflowPayload } from '../../types';
|
||||
import { createEmailStep, createInAppStep, createPushStep } from '../../base/defaults';
|
||||
import { slugify } from '../../utils';
|
||||
|
||||
// Схема для payment-refunded воркфлоу (исходящий платёж-возврат пайщику)
|
||||
export const paymentRefundedPayloadSchema = z.object({
|
||||
userName: z.string(),
|
||||
paymentAmount: z.string(),
|
||||
paymentCurrency: z.string(),
|
||||
paymentDate: z.string(),
|
||||
paymentUrl: z.string().optional(),
|
||||
});
|
||||
|
||||
export type IPayload = z.infer<typeof paymentRefundedPayloadSchema>;
|
||||
|
||||
export interface IWorkflow extends BaseWorkflowPayload, IPayload {}
|
||||
|
||||
export const name = 'Возврат взноса выполнен';
|
||||
export const id = slugify(name);
|
||||
|
||||
export const workflow: WorkflowDefinition<IWorkflow> = WorkflowBuilder
|
||||
.create<IWorkflow>()
|
||||
.name(name)
|
||||
.workflowId(id)
|
||||
.description('Уведомление о выполненном возврате взноса пайщику')
|
||||
.payloadSchema(paymentRefundedPayloadSchema)
|
||||
.tags(['user']) // Для всех пользователей
|
||||
.addSteps([
|
||||
createEmailStep(
|
||||
'payment-refunded-email',
|
||||
'Возврат взноса выполнен',
|
||||
'Уважаемый {{payload.userName}}!<br><br>Ваш взнос возвращён.<br><br>Сумма: <strong>{{payload.paymentAmount}} {{payload.paymentCurrency}}</strong><br><br>Дата: {{payload.paymentDate}}<br><br>Подробная информация доступна по ссылке: {{payload.paymentUrl}}'
|
||||
),
|
||||
createInAppStep(
|
||||
'payment-refunded-notification',
|
||||
'Возврат взноса выполнен',
|
||||
'Возврат на сумму {{payload.paymentAmount}} {{payload.paymentCurrency}} выполнен'
|
||||
),
|
||||
createPushStep(
|
||||
'payment-refunded-push',
|
||||
'Возврат взноса выполнен',
|
||||
'Возврат {{payload.paymentAmount}} {{payload.paymentCurrency}} выполнен'
|
||||
),
|
||||
])
|
||||
.build();
|
||||
Reference in New Issue
Block a user