<?php

namespace App\Http\Controllers\SuperAdmin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\File;

class PaymentSettingsController extends Controller
{
    private function getSettingsPath(): string
    {
        return storage_path('app/superadmin_settings.json');
    }

    private function readSettings(): array
    {
        $path = $this->getSettingsPath();
        if (! File::exists($path)) {
            return [];
        }
        $data = json_decode(File::get($path), true);
        return is_array($data) ? $data : [];
    }

    public function index()
    {
        $settings = $this->readSettings();
        $razorpayKeyId = $settings['razorpay_key_id'] ?? '';
        $hasRazorpaySecret = ! empty($settings['razorpay_key_secret']);
        return view('superadmin.payment-settings', compact('razorpayKeyId', 'hasRazorpaySecret'));
    }

    public function store(Request $request)
    {
        $request->validate([
            'razorpay_key_id' => 'nullable|string|max:255',
            'razorpay_key_secret' => 'nullable|string|max:255',
        ]);

        $path = $this->getSettingsPath();
        $data = $this->readSettings();
        $data['razorpay_key_id'] = $request->input('razorpay_key_id', '');
        if ($request->filled('razorpay_key_secret')) {
            $data['razorpay_key_secret'] = $request->input('razorpay_key_secret');
        }
        File::put($path, json_encode($data, JSON_PRETTY_PRINT));

        return redirect()->route('superadmin.payment-settings.index')->with('success', 'Payment settings saved.');
    }
}
