@extends('admin.layouts.app')

@section('title', 'تنظیمات سیستم')

@section('content')
<div class="card">
    <div class="card-header">
        <h5 class="mb-0">تنظیمات سیستم</h5>
    </div>
    <form method="POST" action="{{ route('admin.system-settings.update') }}">
        @csrf
        <div class="card-body">
            <div class="row g-4">
                <div class="col-12">
                    <h6 class="border-bottom pb-2 mb-3">تنظیمات نقشه نشان</h6>
                </div>
                <div class="col-md-12">
                    <label class="form-label">کلید API نشان</label>
                    <input type="text" name="neshan_map_api_key" class="form-control" value="{{ old('neshan_map_api_key', $settings['neshan_map_api_key']) }}">
                </div>

                <div class="col-12 mt-4">
                    <h6 class="border-bottom pb-2 mb-3">تنظیمات RMTO</h6>
                </div>
                <div class="col-md-6">
                    <label class="form-label">نام کاربری RMTO</label>
                    <input type="text" name="rmto_username" class="form-control" value="{{ old('rmto_username', $settings['rmto_username']) }}">
                </div>
                <div class="col-md-6">
                    <label class="form-label">رمز عبور RMTO</label>
                    <input type="text" name="rmto_password" class="form-control" value="{{ old('rmto_password', $settings['rmto_password']) }}">
                </div>
                <div class="col-md-6">
                    <label class="form-label">محیط RMTO</label>
                    <select name="rmto_environment" class="form-select">
                        <option value="test" {{ old('rmto_environment', $settings['rmto_environment']) === 'test' ? 'selected' : '' }}>تست</option>
                        <option value="production" {{ old('rmto_environment', $settings['rmto_environment']) === 'production' ? 'selected' : '' }}>عملیاتی</option>
                    </select>
                </div>
                <div class="col-md-6">
                    <label class="form-label">کد کلاینت RMTO</label>
                    <input type="text" name="rmto_client_code" class="form-control" value="{{ old('rmto_client_code', $settings['rmto_client_code']) }}">
                </div>

                <div class="col-12 mt-4">
                    <h6 class="border-bottom pb-2 mb-3">تنظیمات پنل پیامک</h6>
                </div>
                <div class="col-md-12">
                    <label class="form-label">کلید API پنل پیامک</label>
                    <input type="text" name="sms_panel_api_key" class="form-control" value="{{ old('sms_panel_api_key', $settings['sms_panel_api_key']) }}">
                </div>
                <div class="col-md-6">
                    <label class="form-label">شماره پیش فرض ادمین برای هشدارها</label>
                    <input type="text" name="sms_panel_default_admin_receptor" class="form-control" value="{{ old('sms_panel_default_admin_receptor', $settings['sms_panel_default_admin_receptor']) }}" placeholder="09xxxxxxxxx">
                </div>
                <div class="col-md-6">
                    <label class="form-label">شماره پشتیبانی پیامک</label>
                    <input type="text" name="sms_support_phone" class="form-control" value="{{ old('sms_support_phone', $settings['sms_support_phone']) }}" placeholder="021xxxxxxx یا 09xxxxxxxxx">
                </div>

                <div class="col-12 mt-4">
                    <h6 class="border-bottom pb-2 mb-3">تنظیمات مالی حمل</h6>
                </div>
                <div class="col-md-3">
                    <label class="form-label">نرخ پایه هر کیلومتر</label>
                    <input type="number" step="0.01" min="0" name="freight_base_rate_per_km" class="form-control" value="{{ old('freight_base_rate_per_km', $settings['freight_base_rate_per_km']) }}">
                </div>
                <div class="col-md-3">
                    <label class="form-label">درصد بیمه</label>
                    <input type="number" step="0.01" min="0" name="freight_insurance_percent" class="form-control" value="{{ old('freight_insurance_percent', $settings['freight_insurance_percent']) }}">
                </div>
                <div class="col-md-3">
                    <label class="form-label">عوارض قانونی</label>
                    <input type="number" step="0.01" min="0" name="freight_legal_toll" class="form-control" value="{{ old('freight_legal_toll', $settings['freight_legal_toll']) }}">
                </div>
                <div class="col-md-3">
                    <label class="form-label">درصد مالیات</label>
                    <input type="number" step="0.01" min="0" name="freight_tax_percent" class="form-control" value="{{ old('freight_tax_percent', $settings['freight_tax_percent']) }}">
                </div>
                <div class="col-md-3">
                    <label class="form-label">درصد سهم پایانه</label>
                    <input type="number" step="0.01" min="0" name="freight_terminal_share_percent" class="form-control" value="{{ old('freight_terminal_share_percent', $settings['freight_terminal_share_percent']) }}">
                </div>
                <div class="col-md-3">
                    <label class="form-label">حداقل نرخ کرایه</label>
                    <input type="number" step="0.01" min="0" name="freight_min_fare" class="form-control" value="{{ old('freight_min_fare', $settings['freight_min_fare']) }}">
                </div>

                <div class="col-12 mt-4">
                    <h6 class="border-bottom pb-2 mb-3">امضای دیجیتال (تست)</h6>
                </div>
                <div class="col-md-4">
                    <label class="form-label">فعال سازی</label>
                    <select name="digital_signature_fake_enabled" class="form-select">
                        <option value="true" {{ old('digital_signature_fake_enabled', $settings['digital_signature_fake_enabled']) === 'true' ? 'selected' : '' }}>فعال</option>
                        <option value="false" {{ old('digital_signature_fake_enabled', $settings['digital_signature_fake_enabled']) === 'false' ? 'selected' : '' }}>غیرفعال</option>
                    </select>
                </div>
                <div class="col-md-4">
                    <label class="form-label">توکن تست</label>
                    <input type="text" name="digital_signature_fake_token" class="form-control" value="{{ old('digital_signature_fake_token', $settings['digital_signature_fake_token']) }}" placeholder="تست">
                </div>
                <div class="col-md-4">
                    <label class="form-label">مرجع صدور تست</label>
                    <input type="text" name="digital_signature_fake_cert_issuer" class="form-control" value="{{ old('digital_signature_fake_cert_issuer', $settings['digital_signature_fake_cert_issuer']) }}" placeholder="سامانه سبک بار - تست">
                </div>
            </div>
        </div>
        <div class="card-footer d-flex justify-content-end">
            <button type="submit" class="btn btn-primary">
                <i class="fas fa-save me-1"></i>
                ذخیره تنظیمات
            </button>
        </div>
    </form>
</div>

<div class="card mt-4">
    <div class="card-header">
        <h5 class="mb-0">تست پیامک پترنی</h5>
    </div>
    @php
    $patternTokenMap = [
        'cargo_request_registered'          => ['token' => 'کد رهگیری بار'],
        'cargo_request_notif_to_admin'      => ['token' => 'کد رهگیری', 'token2' => 'مبدا', 'token3' => 'مقصد'],
        'cancel_request'                    => ['token' => 'کد رهگیری', 'token10' => 'نام فرستنده', 'token20' => 'نام گیرنده'],
        'issuance_bill_landing_from_bita24' => ['token' => 'کد رهگیری', 'token2' => 'شماره پشتیبانی'],
        'issuance_bill_landing_from_site'   => ['token' => 'کد رهگیری', 'token2' => 'لینک دانلود', 'token3' => 'شماره پشتیبانی'],
        'company_otp_login'                 => ['token' => 'کد OTP'],
        'driver_receive_waybill'            => ['token' => 'کد رهگیری', 'token2' => 'نام راننده'],
        'driver_complete_information'       => ['token' => 'نام راننده'],
        'driver_login_otp'                  => ['token' => 'کد OTP'],
    ];
    $patternDefaults = [
        'cargo_request_registered'          => ['token' => 'TRK-1404-001'],
        'cargo_request_notif_to_admin'      => ['token' => 'TRK-1404-001', 'token2' => 'تهران', 'token3' => 'اصفهان'],
        'cancel_request'                    => ['token' => 'TRK-1404-001', 'token10' => 'علی رضایی', 'token20' => 'حسن احمدی'],
        'issuance_bill_landing_from_bita24' => ['token' => 'TRK-1404-001', 'token2' => '021-12345678'],
        'issuance_bill_landing_from_site'   => ['token' => 'TRK-1404-001', 'token2' => 'https://sabok.ir/print/TRK-1404-001', 'token3' => '021-12345678'],
        'company_otp_login'                 => ['token' => '12345'],
        'driver_receive_waybill'            => ['token' => 'TRK-1404-001', 'token2' => 'محمد کریمی'],
        'driver_complete_information'       => ['token' => 'محمد کریمی'],
        'driver_login_otp'                  => ['token' => '54321'],
    ];
    $allTokenKeys = ['token', 'token2', 'token3', 'token10', 'token20'];
    $selectedPattern = old('pattern_key', array_key_first($smsPatterns ?? []));
    @endphp
    <form method="POST" action="{{ route('admin.system-settings.test-sms') }}" id="smsTestForm">
        @csrf
        <div class="card-body">
            <div class="row g-3">
                <div class="col-md-5">
                    <label class="form-label">شماره گیرنده</label>
                    <input type="text" name="receptor" class="form-control" value="{{ old('receptor', $settings['sms_panel_default_admin_receptor']) }}" placeholder="09xxxxxxxxx" required>
                </div>
                <div class="col-md-7">
                    <label class="form-label">پترن</label>
                    <select name="pattern_key" class="form-select" id="patternSelect" required>
                        @foreach($smsPatterns as $key => $pattern)
                            <option value="{{ $key }}" data-tokens="{{ json_encode($patternTokenMap[$key] ?? []) }}" data-defaults="{{ json_encode($patternDefaults[$key] ?? []) }}" {{ $selectedPattern === $key ? 'selected' : '' }}>
                                {{ $pattern['label'] ?? $pattern['template'] }} | {{ $pattern['template'] }} (ID: {{ $pattern['id'] }})
                            </option>
                        @endforeach
                    </select>
                </div>

                {{-- Dynamic token fields --}}
                <div class="col-12" id="tokenFields">
                    <div class="row g-2" id="tokenFieldsInner">
                        @foreach($allTokenKeys as $tk)
                        <div class="col-md-4 token-field" data-key="{{ $tk }}" style="display:none">
                            <label class="form-label token-label fw-semibold text-primary"></label>
                            <input type="text" name="{{ $tk }}" class="form-control" value="{{ old($tk) }}" placeholder="">
                            <small class="text-muted">{{ $tk }}</small>
                        </div>
                        @endforeach
                    </div>
                </div>
            </div>
        </div>
        <div class="card-footer d-flex justify-content-end">
            <button type="submit" class="btn btn-success">
                <i class="fas fa-paper-plane me-1"></i>
                ارسال تست
            </button>
        </div>
    </form>
</div>

<div class="card mt-4">
    <div class="card-header bg-danger">
        <h5 class="mb-0 text-white">ریست سیستم</h5>
    </div>
    <div class="card-body">
        <p class="text-danger fw-bold mb-3">
            <i class="fas fa-exclamation-triangle me-2"></i>
            هشدار: این عملیات تمام بارها، بارنامه‌ها و داده‌های سیستم را حذف خواهد کرد!
        </p>
        <p class="text-muted">
            این دکمه برای تست سیستم و شروع دوباره مفید است. بعد از ریست، تمام داده‌های زیر حذف می‌شوند:
        </p>
        <ul class="text-muted small">
            <li>تمام بارها (Loads)</li>
            <li>تمام بارنامه‌ها (Bills)</li>
            <li>تمام موقعیت‌های راننده (Driver Locations)</li>
            <li>تمام خودروهای راننده (Driver Vehicles)</li>
            <li>تمام گزارش‌های مشکل (Driver Issues)</li>
            <li>تمام لاگ‌های فعالیت (Activity Logs)</li>
        </ul>
    </div>
    <div class="card-footer d-flex justify-content-between">
        <div></div>
        <form method="POST" action="{{ route('admin.system-settings.reset') }}" id="resetForm" style="display:inline;">
            @csrf
            <input type="hidden" name="confirm" value="yes">
            <button type="button" class="btn btn-danger" onclick="confirmReset()">
                <i class="fas fa-redo me-1"></i>
                ریست سیستم
            </button>
        </form>
    </div>
</div>

@endsection

@push('scripts')
<script>
function confirmReset() {
    const confirmed = confirm('آیا مطمئن هستید؟ این عملیات قابل بازگشت نیست!\n\nتمام بارها، بارنامه‌ها و داده‌های سیستم حذف خواهند شد.');
    if (confirmed) {
        document.getElementById('resetForm').submit();
    }
}
</script>
<script>
(function() {
    const select = document.getElementById('patternSelect');
    function updateTokenFields() {
        const opt = select.options[select.selectedIndex];
        const tokens = JSON.parse(opt.dataset.tokens || '{}');
        const defaults = JSON.parse(opt.dataset.defaults || '{}');
        document.querySelectorAll('.token-field').forEach(function(field) {
            const key = field.dataset.key;
            if (tokens[key]) {
                field.style.display = '';
                field.querySelector('.token-label').textContent = tokens[key];
                const inp = field.querySelector('input');
                if (!inp.value) inp.value = defaults[key] || '';
                inp.placeholder = defaults[key] || '';
            } else {
                field.style.display = 'none';
                field.querySelector('input').value = '';
            }
        });
    }
    select.addEventListener('change', updateTokenFields);
    updateTokenFields();
})();
</script>
@endpush
