beeoclock / client-panel-app

2 stars 0 forks source link

Додавання змінної notificationSettings в OrderDto для відправки при створенні або редагуванні ордеру #484

Open dokerwin opened 1 month ago

dokerwin commented 1 month ago

Опис завдання:

Необхідно модифікувати існуючу логіку роботи з ордерами так, щоб змінна notificationSettings завжди передавалася в об'єкті OrderDto під час створення або редагування ордера.

Деталі завдання:

  1. Модифікація OrderDto:

    • Додати нову змінну notificationSettings в клас OrderDto. Ця змінна повинна мати тип OrderNotificationSettingsDto.
    • OrderNotificationSettingsDto міститиме налаштування для відправки повідомлень, такі як:
      • sendNotification: Булеве значення, яке сигналізує, чи повинно бути відправлено повідомлення про створення чи зміну ордера.
      • sendTypes: Масив типів відправки повідомлень (наприклад, ['sms', 'email']).
      • sendReceivers: Масив отримувачів повідомлення (наприклад, ['business', 'client']).
      • sendReminder: Булеве значення, яке сигналізує, чи повинно бути відправлено нагадування про зміни.
  2. Логіка обробки ордерів:

    • Забезпечити, щоб змінна notificationSettings передавалася і враховувалася під час створення нового ордера.
    • Забезпечити, щоб змінна notificationSettings також передавалася під час редагування існуючого ордера.

Приклад коду:

class OrderDto {
  object?: 'OrderDto';
  _id: string;
  status?: OrderStatusEnum;
  meta?: MetaDto;
  products?: OrderProductDto[];
  services?: OrderServiceDto[];
  paymentStatus?: PaymentStatusEnum;
  businessNote?: string;
  notificationSettings?: OrderNotificationSettingsDto; // нове значення
  createdAt?: string;
  updatedAt?: string;
}

class OrderNotificationSettingsDto {
  object?: 'OrderNotificationSettingsDto';
  sendNotification: boolean; // сигналізує, чи має бути відправлене повідомлення про створення або зміну ордеру
  sendTypes?: NotificationTypeEnum[]; // типи відправки повідомлень: sms, email, тощо
  sendReceivers?: NotificationReceiverEnum[]; // отримувачі повідомлень: business, client, тощо
}

Acceptance Criteria: