/**
 * DMC Report Single Student All (Refactored)
 * Handles AJAX requests for student listing and report generation.
 */

$(document).ready(function () {
    // Handle Darja change
    $('#darja').on('change', function () {
        const darja = $(this).val();
        if (!darja) {
            $('#regSno').html('<option value="">پہلے درجہ منتخب کریں</option>');
            return;
        }

        $.ajax({
            url: 'APIs/dmc_api.php?action=get_students',
            method: 'POST',
            data: JSON.stringify({ darja: darja }),
            contentType: 'application/json',
            success: function (res) {
                if (res.success) {
                    let options = '<option value="">طالب علم کا انتخاب کریں</option>';
                    res.data.forEach(function (std) {
                        options += `<option value="${std.sno}">${std.stdName}</option>`;
                    });
                    $('#regSno').html(options);
                } else {
                    Swal.fire({ icon: 'error', title: 'غلطی', text: res.message });
                }
            }
        });
    });

    // Handle Search form submission
    $('#searchForm').on('submit', function (e) {
        e.preventDefault();
        const darja = $('#darja').val();
        const regSno = $('#regSno').val();
        const year = $('#year').val();

        if (!darja || !regSno || !year) {
            Swal.fire({ icon: 'warning', title: 'توجہ', text: 'برائے مہربانی تمام خانے پُر کریں۔' });
            return;
        }

        Swal.fire({
            title: 'رپورٹ تیار ہو رہی ہے...',
            allowOutsideClick: false,
            didOpen: () => { Swal.showLoading(); }
        });

        $.ajax({
            url: 'APIs/dmc_api.php?action=get_report',
            method: 'POST',
            data: JSON.stringify({ darja: darja, regSno: regSno, year: year }),
            contentType: 'application/json',
            success: function (res) {
                Swal.close();
                if (res.success) {
                    renderReport(res.data);
                } else {
                    $('#reportContainer').html(`<div class="alert alert-warning text-center urdu-regular fs-4">${res.message}</div>`);
                }
            },
            error: function () {
                Swal.close();
                Swal.fire({ icon: 'error', title: 'غلطی', text: 'سروور سے رابطہ کرنے میں ناکامی۔' });
            }
        });
    });

    function renderReport(data) {
        const std = data.student;
        const marks = data.marks;
        const totals = data.totals;

        let rows = '';
        marks.forEach(function (m) {
            rows += `
                <tr>
                    <td>${m.subjectName}</td>
                    <td class="text-center">${m.obtmarks !== null ? m.obtmarks : '-'}</td>
                    <td class="text-center">${m.totalMarks}</td>
                </tr>
            `;
        });

        const html = `
            <div id="printableArea" class="bg-white p-4 shadow-sm rounded-4 border">
                <div class="text-center mb-4">
                    <h3 class="fw-bold urdu-regular text-primary mb-1">${data.madrasa_name}</h3>
                    <p class="text-muted urdu-regular fs-5 mb-0">رقم الالحاق 05701 | رجسٹریشن نمبر 5/3516</p>
                    <h4 class="mt-3 fw-bold border-bottom border-primary d-inline-block px-4 pb-2 urdu-regular text-dark">کشف الدرجات (DMC) - ${std.darjaName}</h4>
                </div>

                <div class="row mb-4 urdu-regular fs-5 text-end">
                    <div class="col-md-6 mb-2"><strong>اسم الطالب:</strong> ${std.stdName}</div>
                    <div class="col-md-6 mb-2"><strong>اسم الوالد:</strong> ${std.fatherName}</div>
                    <div class="col-md-6 mb-2"><strong>تاریخ المیلاد:</strong> ${std.dob}</div>
                    <div class="col-md-6 mb-2"><strong>تعلیمی سال:</strong> ${data.year}</div>
                </div>

                <div class="table-responsive">
                    <table class="table table-bordered table-hover align-middle urdu-regular fs-5 text-end">
                        <thead class="table-light">
                            <tr>
                                <th class="text-end">المادۃ (مضمون)</th>
                                <th class="text-center">الدرجات (حاصل کردہ)</th>
                                <th class="text-center">کل نمبرات</th>
                            </tr>
                        </thead>
                        <tbody>${rows}</tbody>
                        <tfoot class="table-primary fw-bold">
                            <tr>
                                <td class="text-end">مجموع الدرجات (کل نمبرات)</td>
                                <td class="text-center">${totals.obtained}</td>
                                <td class="text-center">${totals.possible}</td>
                            </tr>
                        </tfoot>
                    </table>
                </div>

                <div class="d-flex justify-content-between mt-5 no-print">
                   <button onclick="window.print()" class="btn btn-outline-primary btn-lg rounded-pill px-5 urdu-regular">
                       <i class="bi bi-printer me-2"></i> پرنٹ کریں
                   </button>
                   <button onclick="location.reload()" class="btn btn-outline-secondary btn-lg rounded-pill px-5 urdu-regular">
                       <i class="bi bi-arrow-clockwise me-2"></i> دوبارہ تلاش
                   </button>
                </div>
            </div>
        `;

        $('#reportContainer').html(html);
    }
});
