<?php
if (session_status() === PHP_SESSION_NONE) session_start();

require_once '../config.php';

if (!isLoggedIn() || is_null(getRepresentativeId())) {
    setMessage('برای دسترسی به این صفحه، لطفاً به عنوان نماینده وارد شوید.', 'error');
    redirect('../login.php');
}

$rep_id = getRepresentativeId();
$upload_dir = '../uploads/receipts/';

// Handle form submission
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['submit_deposit'])) {
    $amount = $_POST['amount'] ?? null;
    $details = $_POST['details'] ?? null;
    $file = $_FILES['attachment'] ?? null;

    if ($amount && is_numeric($amount) && $amount > 0 && $details && $file && $file['error'] === UPLOAD_ERR_OK) {
        $file_name = uniqid() . '-' . basename($file['name']);
        $target_path = $upload_dir . $file_name;

        // Validate file type
        $allowed_types = ['image/jpeg', 'image/png', 'application/pdf'];
        if (in_array($file['type'], $allowed_types) && $file['size'] < 5000000) { // Max 5MB
            if (move_uploaded_file($file['tmp_name'], $target_path)) {
                try {
                    $stmt = $pdo->prepare("INSERT INTO payment_notifications (representative_id, amount, transaction_details, attachment_path) VALUES (?, ?, ?, ?)");
                    $stmt->execute([$rep_id, $amount, $details, $target_path]);
                    setMessage('درخواست شما با موفقیت ثبت شد و در انتظار تایید مدیر است.', 'success');
                } catch (Exception $e) {
                    setMessage('خطا در ثبت درخواست: ' . $e->getMessage(), 'error');
                    unlink($target_path); // Delete uploaded file on DB error
                }
            } else {
                setMessage('خطا در آپلود فایل رسید.', 'error');
            }
        } else {
            setMessage('فرمت فایل غیرمجاز است یا حجم آن بیش از 5 مگابایت است. (مجاز: JPG, PNG, PDF)', 'error');
        }
    } else {
        setMessage('لطفاً تمام فیلدها را به درستی پر کرده و فایل رسید را انتخاب کنید.', 'error');
    }
    redirect('deposit.php');
    exit;
}

// Fetch past notifications
$notifications = $pdo->prepare("SELECT * FROM payment_notifications WHERE representative_id = ? ORDER BY created_at DESC");
$notifications->execute([$rep_id]);
$past_requests = $notifications->fetchAll();

$page_title = 'شارژ حساب';
require_once '../includes/header.php';
?>

<div class="row">
    <!-- Deposit Form -->
    <div class="col-lg-5 mb-4">
        <div class="card">
            <div class="card-header">
                <h5 class="mb-0">ثبت درخواست شارژ حساب</h5>
            </div>
            <div class="card-body">
                <p class="card-text">لطفاً پس از واریز وجه، فرم زیر را با دقت تکمیل نمایید. درخواست شما پس از بررسی توسط مدیر، اعمال خواهد شد.</p>
                <form method="POST" action="deposit.php" enctype="multipart/form-data">
                    <div class="mb-3">
                        <label for="amount" class="form-label">مبلغ واریز شده (تومان)</label>
                        <input type="number" class="form-control" id="amount" name="amount" placeholder="مثلاً: 50000" required>
                    </div>
                    <div class="mb-3">
                        <label for="details" class="form-label">اطلاعات تراکنش</label>
                        <textarea class="form-control" id="details" name="details" rows="3" placeholder="مثلاً: شماره پیگیری، تاریخ و ساعت واریز" required></textarea>
                    </div>
                    <div class="mb-3">
                        <label for="attachment" class="form-label">تصویر رسید</label>
                        <input class="form-control" type="file" id="attachment" name="attachment" required>
                    </div>
                    <button type="submit" name="submit_deposit" class="btn btn-primary w-100">ثبت و ارسال برای تایید</button>
                </form>
            </div>
        </div>
    </div>

    <!-- History -->
    <div class="col-lg-7">
        <div class="card">
            <div class="card-header">
                <h5 class="mb-0">تاریخچه درخواست‌ها</h5>
            </div>
            <div class="card-body">
                <div class="table-responsive">
                    <table class="table table-hover align-middle">
                        <thead>
                            <tr>
                                <th>مبلغ</th>
                                <th>اطلاعات تراکنش</th>
                                <th>تاریخ ثبت</th>
                                <th>وضعیت</th>
                                <th>رسید</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php if (empty($past_requests)): ?>
                                <tr><td colspan="5" class="text-center text-muted">هیچ درخواستی ثبت نشده است.</td></tr>
                            <?php endif; ?>
                            <?php foreach ($past_requests as $req): ?>
                                <tr>
                                    <td><?= number_format($req['amount']) ?></td>
                                    <td><small><?= nl2br(htmlspecialchars($req['transaction_details'])) ?></small></td>
                                    <td><small><?= htmlspecialchars($req['created_at']) ?></small></td>
                                    <td>
                                        <?php 
                                            $status_map = [
                                                'pending' => ['class' => 'warning', 'text' => 'در انتظار'],
                                                'approved' => ['class' => 'success', 'text' => 'تایید شده'],
                                                'rejected' => ['class' => 'danger', 'text' => 'رد شده'],
                                            ];
                                            $status = $status_map[$req['status']] ?? ['class' => 'secondary', 'text' => 'نامشخص'];
                                        ?>
                                        <span class="badge bg-<?= $status['class'] ?>"><?= $status['text'] ?></span>
                                    </td>
                                    <td>
                                        <?php if ($req['attachment_path']): ?>
                                            <a href="<?= htmlspecialchars($req['attachment_path']) ?>" target="_blank" class="btn btn-sm btn-outline-primary">مشاهده</a>
                                        <?php endif; ?>
                                    </td>
                                </tr>
                            <?php endforeach; ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>

<?php require_once '../includes/footer.php'; ?>
