<?php $__env->startSection('title', 'ওয়েব্রিজ ড্যাশবোর্ড'); ?>

<?php $__env->startSection('page-title', 'ড্যাশবোর্ড'); ?>

<?php $__env->startSection('breadcrumb'); ?>
    <li class="breadcrumb-item active">ড্যাশবোর্ড</li>
<?php $__env->stopSection(); ?>

<?php $__env->startSection('content'); ?>
<div class="row">
    <!-- লাইভ ওজন কার্ড -->
    <div class="col-lg-3 col-6">
        <div class="small-box bg-info">
            <div class="inner">
                <h3 id="liveWeight">0</h3>
                <p>লাইভ ওজন (KG)</p>
            </div>
            <div class="icon">
                <i class="fas fa-weight-hanging"></i>
            </div>
            <a href="#" class="small-box-footer">
                <i class="fas fa-circle text-warning" id="liveStatusIcon"></i> 
                <span id="liveStatusText">লাইভ আপডেট হচ্ছে...</span>
            </a>
        </div>
    </div>
    
    <div class="col-lg-3 col-6">
        <div class="small-box bg-success">
            <div class="inner">
                <h3 id="todayCount">0</h3>
                <p>আজকের ওজন</p>
            </div>
            <div class="icon">
                <i class="fas fa-calendar-day"></i>
            </div>
        </div>
    </div>
    
    <div class="col-lg-3 col-6">
        <div class="small-box bg-warning">
            <div class="inner">
                <h3 id="pendingCount">0</h3>
                <p>পেন্ডিং ওজন</p>
            </div>
            <div class="icon">
                <i class="fas fa-clock"></i>
            </div>
        </div>
    </div>
    
    <div class="col-lg-3 col-6">
        <div class="small-box bg-secondary">
            <div class="inner">
                <h3 id="completedCount">0</h3>
                <p>সম্পন্ন ওজন</p>
            </div>
            <div class="icon">
                <i class="fas fa-check-circle"></i>
            </div>
        </div>
    </div>
</div>

<!-- ওজন রেকর্ড ফর্ম -->
<div class="card card-primary">
    <div class="card-header">
        <h3 class="card-title">🚛 গাড়ির ওজন রেকর্ড করুন</h3>
        <div class="card-tools">
            <button type="button" class="btn btn-tool" data-card-widget="collapse">
                <i class="fas fa-minus"></i>
            </button>
        </div>
    </div>
    <div class="card-body">
        <div id="alertMsg"></div>
        
        <div class="row">
            <div class="col-md-6">
                <div class="form-group">
                    <label>🚛 গাড়ির নম্বর *</label>
                    <input type="text" class="form-control" id="vehicleNo" placeholder="যেমন: DMT-20-4441">
                    <small class="text-muted">প্রথম ওজনের সময় গাড়ির নম্বর দিয়ে সেভ করুন, দ্বিতীয় ওজনের সময় একই নম্বর দিয়ে সেভ হবে</small>
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <label>👤 প্রেরক (Sender)</label>
                    <input type="text" class="form-control" id="senderName" placeholder="যেমন: SALAM & BROTHERS">
                </div>
            </div>
            <div class="col-md-4">
                <div class="form-group">
                    <label>📦 প্রাপক (Receiver)</label>
                    <input type="text" class="form-control" id="receiverName" placeholder="যেমন: SARM">
                </div>
            </div>
            <div class="col-md-4">
                <div class="form-group">
                    <label>📦 পণ্যের নাম (Goods)</label>
                    <input type="text" class="form-control" id="goodsName" placeholder="যেমন: PADDY">
                </div>
            </div>
            <div class="col-md-4">
                <div class="form-group">
                    <label>🎒 বস্তার সংখ্যা (Bags)</label>
                    <input type="number" class="form-control" id="bags" placeholder="যেমন: 250">
                </div>
            </div>
        </div>
        
        <div class="row mt-3">
            <div class="col-md-6">
                <div class="alert alert-info">
                    <strong>📥 লাইভ ওজন: <span id="currentLiveWeight">0</span> KG</strong>
                </div>
            </div>
        </div>
        
        <div class="btn-group">
            <button class="btn btn-primary btn-lg" id="firstWeightBtn">
                <i class="fas fa-download"></i> প্রথম ওজন (Gross)
            </button>
            <button class="btn btn-success btn-lg" id="secondWeightBtn">
                <i class="fas fa-upload"></i> দ্বিতীয় ওজন (Tare)
            </button>
            <button class="btn btn-secondary" id="resetBtn">
                <i class="fas fa-sync-alt"></i> রিসেট
            </button>
        </div>
    </div>
</div>

<!-- সাম্প্রতিক ওজন তালিকা -->
<div class="card">
    <div class="card-header">
        <h3 class="card-title">📋 সাম্প্রতিক ওজন রেকর্ড</h3>
        <div class="card-tools">
            <button type="button" class="btn btn-tool" data-card-widget="collapse">
                <i class="fas fa-minus"></i>
            </button>
        </div>
    </div>
    <div class="card-body table-responsive p-0">
        <table class="table table-hover text-nowrap">
            <thead>
                <tr>
                    <th>সিরিয়াল</th>
                    <th>গাড়ির নম্বর</th>
                    <th>প্রেরক</th>
                    <th>Gross (KG)</th>
                    <th>Tare (KG)</th>
                    <th>Net (KG)</th>
                    <th>স্ট্যাটাস</th>
                    <th>প্রিন্ট</th>
                </tr>
            </thead>
            <tbody id="weighmentsTable">
                <tr><td colspan="8" class="text-center">লোড হচ্ছে... ⏳</td></tr>
            </tbody>
        </table>
    </div>
</div>
<?php $__env->stopSection(); ?>

<?php $__env->startPush('js'); ?>
<script>
    let currentWeight = 0;
    const csrfToken = document.querySelector('meta[name="csrf-token"]').content;

    // লাইভ ওজন ফেচ
    async function fetchLiveWeight() {
    try {
        const response = await fetch('/api/live-weight');
        const data = await response.json();
        document.getElementById('liveWeight').innerText = data.weight;
    } catch (error) {
        console.error('Error fetching live weight:', error);
    }
}

    // ওজনের তালিকা ফেচ
    async function fetchWeighments() {
        try {
            const res = await fetch('/api/weighments');
            const data = await res.json();
            const tbody = document.getElementById('weighmentsTable');
            if (!data.length) {
                tbody.innerHTML = '<tr><td colspan="8" class="text-center">কোনো রেকর্ড নেই</td></tr>';
                return;
            }
            let html = '';
            data.slice(0, 50).forEach(w => {
                let statusText = w.status === 'pending' ? '⏳ পেন্ডিং' : (w.status === 'first_done' ? '📥 প্রথম ওজন' : '✅ সম্পন্ন');
                let badgeClass = w.status === 'completed' ? 'success' : (w.status === 'first_done' ? 'info' : 'warning');
                html += `<tr>
                    <td>${w.serial_no || '-'}</td>
                    <td><strong>${w.vehicle_no || '-'}</strong></td>
                    <td>${w.sender_name || '-'}</td>
                    <td>${w.gross_weight || '-'}</td>
                    <td>${w.tare_weight || '-'}</td>
                    <td><strong class="text-success">${w.net_weight || '-'}</strong></td>
                    <td><span class="badge badge-${badgeClass}">${statusText}</span></td>
                    <td>${w.status === 'completed' ? `<a href="/report/print/${w.id}" target="_blank" class="btn btn-sm btn-primary"><i class="fas fa-print"></i></a>` : '-'}</td>
                </tr>`;
            });
            tbody.innerHTML = html;
        } catch (err) {
            console.error('Fetch weighments error:', err);
        }
    }

    // স্ট্যাটাস ফেচ
    async function fetchStats() {
        try {
            const res = await fetch('/api/stats');
            const data = await res.json();
            if (data.todayCount) document.getElementById('todayCount').innerText = data.todayCount;
            if (data.pendingCount) document.getElementById('pendingCount').innerText = data.pendingCount;
            if (data.completedCount) document.getElementById('completedCount').innerText = data.completedCount;
        } catch (err) {}
    }

    // প্রথম ওজন সেভ
    async function saveFirstWeight() {
        const vehicleNo = document.getElementById('vehicleNo').value.trim();
        if (!vehicleNo) {
            showAlert('danger', '⚠️ গাড়ির নম্বর দিন!');
            return;
        }
        if (currentWeight <= 0) {
            showAlert('danger', '⚠️ লাইভ ওজন শূন্য! স্কেল চেক করুন');
            return;
        }

        // চেক করা - এই গাড়ির প্রথম ওজন ইতিমধ্যে আছে কিনা
        try {
            const checkRes = await fetch(`/api/check-vehicle/${vehicleNo}`);
            const checkData = await checkRes.json();
            if (checkData.exists && checkData.status === 'first_done') {
                showAlert('warning', `⚠️ ${vehicleNo} নম্বর গাড়ির প্রথম ওজন ইতিমধ্যে হয়েছে! দ্বিতীয় ওজন দিন।`);
                return;
            }
        } catch (err) {}

        const payload = {
            vehicle_no: vehicleNo,
            sender_name: document.getElementById('senderName').value,
            receiver_name: document.getElementById('receiverName').value,
            goods_name: document.getElementById('goodsName').value,
            bags: parseInt(document.getElementById('bags').value) || 0
        };

        try {
            const res = await fetch('/api/first-weight', {
                method: 'POST',
                headers: { 'Content-Type': application/json', 'X-CSRF-TOKEN': csrfToken },
                body: JSON.stringify(payload)
            });
            const data = await res.json();
            if (data.success) {
                showAlert('success', `✅ প্রথম ওজন সেভ হয়েছে! গাড়ি: ${vehicleNo}, ওজন: ${currentWeight} KG`);
                fetchWeighments();
                fetchStats();
                document.getElementById('vehicleNo').disabled = true;
                document.getElementById('firstWeightBtn').disabled = true;
                document.getElementById('secondWeightBtn').disabled = false;
            } else {
                showAlert('danger', data.message || 'সেভ করতে ব্যর্থ');
            }
        } catch (err) {
            showAlert('danger', 'সার্ভার সংযোগ সমস্যা');
        }
    }

    // দ্বিতীয় ওজন সেভ
    async function saveSecondWeight() {
        const vehicleNo = document.getElementById('vehicleNo').value.trim();
        if (!vehicleNo) {
            showAlert('danger', '⚠️ গাড়ির নম্বর দিন!');
            return;
        }
        if (currentWeight <= 0) {
            showAlert('danger', '⚠️ লাইভ ওজন শূন্য! স্কেলে গাড়ি তুলুন');
            return;
        }

        try {
            const res = await fetch('/api/second-weight', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': csrfToken },
                body: JSON.stringify({ vehicle_no: vehicleNo })
            });
            const data = await res.json();
            if (data.success) {
                showAlert('success', `✅ দ্বিতীয় ওজন সেভ হয়েছে! নেট ওজন: ${data.data.net_weight} KG`);
                fetchWeighments();
                fetchStats();
                resetForm();
            } else {
                showAlert('danger', data.message || 'সেভ করতে ব্যর্থ');
            }
        } catch (err) {
            showAlert('danger', 'সার্ভার সংযোগ সমস্যা');
        }
    }

    // ফর্ম রিসেট
    function resetForm() {
        document.getElementById('vehicleNo').value = '';
        document.getElementById('senderName').value = '';
        document.getElementById('receiverName').value = '';
        document.getElementById('goodsName').value = '';
        document.getElementById('bags').value = '';
        document.getElementById('vehicleNo').disabled = false;
        document.getElementById('firstWeightBtn').disabled = false;
        document.getElementById('secondWeightBtn').disabled = false;
        showAlert('info', 'ফর্ম রিসেট করা হয়েছে। নতুন গাড়ির জন্য প্রস্তুত');
    }

    // অ্যালার্ট শো
    function showAlert(type, msg) {
        const alertDiv = document.getElementById('alertMsg');
        const alertClass = type === 'success' ? 'alert-success' : (type === 'warning' ? 'alert-warning' : 'alert-danger');
        alertDiv.innerHTML = `<div class="alert ${alertClass} alert-dismissible fade show" role="alert">
            ${msg}
            <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
        </div>`;
        setTimeout(() => {
            if (alertDiv.innerHTML) alertDiv.innerHTML = '';
        }, 4000);
    }

    // ইভেন্ট লিসেনার
    document.getElementById('firstWeightBtn').addEventListener('click', saveFirstWeight);
    document.getElementById('secondWeightBtn').addEventListener('click', saveSecondWeight);
    document.getElementById('resetBtn').addEventListener('click', resetForm);

    // ইন্টারভাল
    setInterval(fetchLiveWeight, 2000);
    setInterval(fetchWeighments, 5000);
    
    // পেজ লোডে ডাটা ফেচ
    fetchLiveWeight();
    fetchWeighments();
    fetchStats();
</script>
<?php $__env->stopPush(); ?>
<?php echo $__env->make('layouts.app', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?><?php /**PATH /home/naowarin/scale.naowarinternational.my.id/resources/views/dashboard.blade.php ENDPATH**/ ?>