hunk.code_window:       )
       )[0];
       const overrides = command.overrides[integration.providerId] || {};
       const pushChannels = subscriber.channels.filter((chan) =>
         Object.values(PushProviderIdEnum).includes(chan.providerId as PushProviderIdEnum)
  
hunk.labels: keep keep add keep keep keep
hunk.after_edit:     if (!integration) {
         await this.createExecutionDetails.execute(
           CreateExecutionDetailsCommand.create({
             ...CreateExecutionDetailsCommand.getDetailsFromJob(command.job),
             detail: DetailEnum.SUBSCRIBER_NO_ACTIVE_INTEGRATION,
             source: ExecutionDetailsSourceEnum.INTERNAL,
             status: ExecutionDetailsStatusEnum.FAILED,
             isTest: false,
             isRetry: false,
           })
         );
         return;
       }
  
hunk.file_path: apps/api/src/app/events/usecases/send-message/send-message-push.usecase.ts
hunk.type: add
file: import { ChannelTypeEnum } from '../../../entities/message-template';
  import { apnsConfig, fcmConfig, expoConfig } from '../credentials';
  import { PushProviderIdEnum } from '../provider.enum';
  import { IProviderConfig } from '../provider.interface';
  
  export const pushProviders: IProviderConfig[] = [
    {
      id: PushProviderIdEnum.FCM,
      displayName: 'Firebase Cloud Messaging',
      channel: ChannelTypeEnum.PUSH,
      credentials: fcmConfig,
      docReference: 'https://docs.novu.co/channels/push/fcm',
      logoFileName: { light: 'fcm.svg', dark: 'fcm.svg' },
    },
    {
      id: PushProviderIdEnum.EXPO,
      displayName: 'Expo Push',
      channel: ChannelTypeEnum.PUSH,
      credentials: expoConfig,
      docReference: 'https://docs.expo.dev/push-notifications/overview/',
      logoFileName: { light: 'expo.svg', dark: 'expo.svg' },
    },
    {
      id: PushProviderIdEnum.APNS,
      displayName: 'APNs',
      channel: ChannelTypeEnum.PUSH,
      credentials: apnsConfig,
      docReference: 'https://docs.novu.co/channels/push/apns',
      logoFileName: { light: 'apns.png', dark: 'apns.png' },
      betaVersion: true,
    },
  ];
  