import { Logger, Module } from '@nestjs/common';
import { PUSH } from './push.port';
import { PushDesativadoAdapter } from './push-desativado.adapter';

/**
 * Ponto único de escolha do provedor de push.
 *
 * Quando houver `FCM_SERVICE_ACCOUNT`, criar `PushFcmAdapter` na mesma porta e
 * selecioná-lo aqui. O iOS segue sem push enquanto não houver conta Apple paga.
 */
@Module({
  providers: [
    PushDesativadoAdapter,
    {
      provide: PUSH,
      useFactory: (desativado: PushDesativadoAdapter) => {
        if (process.env.FCM_SERVICE_ACCOUNT) {
          new Logger('PushModule').warn(
            'FCM_SERVICE_ACCOUNT definido, mas o adaptador real ainda não existe — push segue desativado.',
          );
        }
        return desativado;
      },
      inject: [PushDesativadoAdapter],
    },
  ],
  exports: [PUSH],
})
export class PushModule {}
