<?php

namespace Daite\Coopdigital\Http\Controllers;

use App\Http\Controllers\Controller;
use Daite\Coopdigital\Mail\CorreoCodigoConfirmacion;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;

class ControladorCodigoVerificacion extends Controller
{
    public function enviarCodigoVerificacion(Request $request)
    {
        try {
            $usuario = $request->codigo_usuario ?? '';
            $canal = $request->canal ?? 'SMS';
            $medio = $request->medio ?? '';
            $codigo = rand(100000, 999999);
            Log::info($usuario);
            Log::info($canal);
            Log::info($medio);
            Log::info($codigo);
            
            // Insertando código de verificación en la base de datos
            DB::statement("EXEC [AppMovil].[p_validar_codigo_registro] ?, ?, ?;", [
                $usuario,
                'REGISTRAR_CODIGO',
                $codigo,
            ]);

            // Enviando el código de verificación por el canal seleccionado
            switch ($canal) {
                case 'SMS':
                    $this->enviarSMS();
                    break;
                case 'WHATSAPP':
                    $this->enviarWhatsapp($medio, $codigo);
                    break;
                case 'CORREO':
                    Mail::to($medio)->send(new CorreoCodigoConfirmacion($medio, $codigo));
                    break;
            }

            return 1;
        } catch (\Exception $e) {
            Log::info("Excepción al enviar código");
            Log::info($e);
            return 0;
        }
    }

    private function enviarSMS() {
        Log::info("Enviar Código por SMS");
    }

    private function enviarWhatsapp($numeroDestino, $codigo) {
        Log::info("Enviar Código por WHATSAPP");
        $numeroDestino = '1'.str_replace("-", "", $numeroDestino);
        Log::info($numeroDestino);
        $data = [
            "numero_destino" => $numeroDestino,
            "id_whatsapp_numero_telefono_emisor" => '110066755266397',
            "template" => [
                'name' => 'codigo_verificacion',
                'language' => [
                    'code' => 'es'
                ],
                'components' => [
                    [
                        'type' => 'body',
                        'parameters' => [
                            ['type' => 'text', 'text' => 'Daite S.R.L'],
                            ['type' => 'text', 'text' => $codigo]
                        ]
                    ]
                ]
            ]
        ];
        $result = Http::post("http://daite.ddns.net/api-daite/api/enviarWhatsapp", $data);
        Log::info($result);
    }
}
