Merge remote-tracking branch 'origin/dev' into feat/notification-center-dc-v3
Typecheck / controller (pull_request) Has been cancelled
Typecheck / desktop (pull_request) Has been cancelled

# Conflicts:
#	components/notifications/package.json
This commit is contained in:
coopops
2026-06-07 12:24:50 +00:00
292 changed files with 5243 additions and 2074 deletions
+1 -1
View File
@@ -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();