import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common';
import { MailService } from 'src/mail/mail.service';
import { TwilioService } from 'src/twilio/twilio.service';

@Injectable()
export class NotificacionesService {
  constructor(
    private readonly mailService: MailService,
    private readonly twilioService: TwilioService,
  ) {}

  async enviarNotificacion(tipo: string, email: string, celular: string, codigo: string) {
    try {
      if (tipo === 'email') {
        await this.mailService.sendVerificationCode(email, codigo);
      }
      if (tipo === 'celular') {
        if (!celular.startsWith('+')) {
          celular = `+${celular}`;
        }

        const body = `Tu código de verificación es: ${codigo}`;
        await this.twilioService.sendSMS(celular, body);
      }
      return;
    } catch (error) {
      console.log(error);
      if (error instanceof NotFoundException) {
        throw error;
      }
      throw new BadRequestException('Error al enviar la notificación');
    }
  }
}
