<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Setting;
use Illuminate\Http\Request;

class TestNotificationController extends Controller
{
    protected SendMessageController $sendMessageController;

    public function __construct(SendMessageController $sendMessageController)
    {
        $this->sendMessageController = $sendMessageController;
    }

    /**
     * Show the debug test page
     */
    public function index()
    {
        $config = [
            'smtp' => [
                'host' => config('mail.mailers.smtp.host'),
                'port' => config('mail.mailers.smtp.port'),
                'encryption' => config('mail.mailers.smtp.encryption'),
                'username' => config('mail.mailers.smtp.username'),
                'from_address' => config('mail.from.address'),
                'from_name' => config('mail.from.name'),
                'has_password' => !empty(config('mail.mailers.smtp.password')),
            ],
            'fonnte' => [
                'has_key' => !empty(Setting::get('fonnte_api_key', config('services.fonnte.key'))),
                'key_source' => Setting::get('fonnte_api_key') ? 'database' : (config('services.fonnte.key') ? '.env' : 'tidak ada'),
            ],
        ];

        return view('admin.test-notification', compact('config'));
    }

    /**
     * Delegates to SendMessageController via constructor injection
     */
    public function testEmail(Request $request)
    {
        return $this->sendMessageController->sendEmail($request);
    }

    public function testWhatsApp(Request $request)
    {
        return $this->sendMessageController->sendWhatsApp($request);
    }

    public function testSmtpConnection()
    {
        return $this->sendMessageController->testSmtp();
    }

    public function testFonnteConnection()
    {
        return $this->sendMessageController->testFonnte();
    }
}
