// import { Service, Inject } from 'typedi';
// import events from '@/subscribers/events';
// import { PaymentReceiveNotifyBySms } from '@/services/Sales/PaymentReceived/PaymentReceivedSmsNotify';
// import { IPaymentReceivedCreatedPayload } from '@/interfaces';
// import { runAfterTransaction } from '@/services/UnitOfWork/TransactionsHooks';

// @Service()
// export default class SendSmsNotificationPaymentReceive {
//   @Inject()
//   private paymentReceiveSmsNotify: PaymentReceiveNotifyBySms;

//   /**
//    * Attach events.
//    */
//   public attach(bus) {
//     bus.subscribe(
//       events.paymentReceive.onCreated,
//       this.handleNotifyViaSmsOncePaymentPublish
//     );
//   }

//   /**
//    * Handles send SMS notification after payment transaction creation.
//    */
//   private handleNotifyViaSmsOncePaymentPublish = ({
//     tenantId,
//     paymentReceiveId,
//     trx,
//   }: IPaymentReceivedCreatedPayload) => {
//     // Notify via Sms after transactions complete running.
//     runAfterTransaction(trx, async () => {
//       try {
//         await this.paymentReceiveSmsNotify.notifyViaSmsNotificationAfterCreation(
//           tenantId,
//           paymentReceiveId
//         );
//       } catch (error) { }
//     });
//   };
// }
