<?php
include "db.php";
include "header.php";

// Flag για επιτυχία διαγραφής
$deleted_success = false;
$deleted_product_name = '';

// Διαγραφή προϊόντος αν έχει σταλεί GET parameter delete_id
if (isset($_GET['delete_id'])) {
    $delete_id = (int)$_GET['delete_id'];

    // Πρώτα παίρνουμε το όνομα του προϊόντος για το alert
    $stmt = $db->prepare("SELECT name FROM products WHERE id = ?");
    $stmt->bind_param("i", $delete_id);
    $stmt->execute();
    $stmt->bind_result($deleted_product_name);
    $stmt->fetch();
    $stmt->close();

    // Διαγραφή πρώτα από product_ingredients
    $stmt = $db->prepare("DELETE FROM product_ingredients WHERE product_id = ?");
    $stmt->bind_param("i", $delete_id);
    $stmt->execute();

    // Διαγραφή από product_cost_history
    $stmt = $db->prepare("DELETE FROM product_cost_history WHERE product_id = ?");
    $stmt->bind_param("i", $delete_id);
    $stmt->execute();

    // Διαγραφή από products
    $stmt = $db->prepare("DELETE FROM products WHERE id = ?");
    $stmt->bind_param("i", $delete_id);
    $stmt->execute();

    $deleted_success = true;

    // Ανακατεύθυνση χωρίς το delete_id στο URL
    header("Location: recipes_list.php?deleted=1&name=" . urlencode($deleted_product_name));
    exit;
}

// Έλεγχος αν ήρθε το deleted flag
if (isset($_GET['deleted']) && $_GET['deleted'] == 1 && isset($_GET['name'])) {
    $deleted_success = true;
    $deleted_product_name = $_GET['name'];
}
?>

<style>
 body {
        min-height: 100vh;
        display: flex;
        margin: 0;
        background: #f9f9f9;
    }
    
</style>

<!-- DataTables + Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.6/css/dataTables.bootstrap5.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">

<div class="container-fluid mt-5" style="padding-left: 220px; padding-right: 30px;">
    <h2><i class="bi bi-file-text"></i> Λίστα Συνταγών / Προϊόντων</h2>

    <table id="recipesTable" class="table table-striped table-bordered mt-3 shadow-sm">
        <thead class="table-dark">
            <tr>
                <th>ID</th>
                <th>Κωδικός Προϊόντος</th>
                <th>Όνομα</th>
                <th>Συνολικό Κόστος (€)</th>
                <th>Ημερομηνία Δημιουργίας</th>
                <th>Ενέργειες</th>
            </tr>
        </thead>
        <tbody>
        <?php
        $query = "SELECT * FROM products ORDER BY id";
        $result = $db->query($query);

        while($product = $result->fetch_assoc()):
            // Υπολογισμός συνολικού κόστους προϊόντος με τελευταία τιμή υλικών
            $stmt = $db->prepare("
                SELECT pi.quantity, COALESCE(ip.price, 0) AS price
                FROM product_ingredients pi
                LEFT JOIN ingredient_prices ip ON ip.id = (
                    SELECT id FROM ingredient_prices 
                    WHERE ingredient_id = pi.ingredient_id 
                    ORDER BY date DESC 
                    LIMIT 1
                )
                WHERE pi.product_id = ?
            ");
            $stmt->bind_param("i", $product['id']);
            $stmt->execute();
            $res = $stmt->get_result();

            $total_cost = 0;
            while($row = $res->fetch_assoc()){
                $total_cost += $row['quantity'] * $row['price'];
            }

            $stmt->close();

            // Κωδικός προϊόντος
            $product_code = $product['product_code'] ?? 'PRD-' . str_pad($product['id'], 5, '0', STR_PAD_LEFT);
        ?>
            <tr>
                <td><?= $product['id'] ?></td>
                <td><?= htmlspecialchars($product_code) ?></td>
                <td>
                    <a href="product_view.php?id=<?= $product['id'] ?>" class="text-danger fw-bold">
                        <?= htmlspecialchars($product['name']) ?>
                    </a>
                </td>
                <td><?= number_format($total_cost, 2) ?></td>
                <td><?= $product['created_at'] ?? '-' ?></td>
                <td>
                    <a href="product_edit.php?id=<?= $product['id'] ?>" class="btn btn-warning"><i class="bi bi-pencil-square"></i>️ Επεξεργασία</a>
                    <a href="recipes_list.php?delete_id=<?= $product['id'] ?>" class="btn btn-danger" onclick="return confirm('Είσαι σίγουρος ότι θέλεις να διαγράψεις αυτό το προϊόν;');"><i class="bi bi-trash"></i>️ Διαγραφή</a>
                </td>
            </tr>
        <?php endwhile; ?>
        </tbody>
    </table>

    <!-- Κουμπί Προσθήκη + Alert κάτω από το κουμπί -->
    <div class="mt-3">
        <a href="product_add.php" class="btn btn-success"><i class="bi bi-plus-circle"></i> Προσθήκη Νέας Συνταγής / Προϊόντος</a>
        
        <?php if($deleted_success && !empty($deleted_product_name)): ?>
            <div id="deleteAlert" class="alert alert-success mt-2 mb-0">
                Το προϊόν <strong><?= htmlspecialchars($deleted_product_name) ?></strong> διαγράφηκε επιτυχώς!
            </div>
        <?php endif; ?>
    </div>
</div>

<!-- jQuery + DataTables JS + Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.13.6/js/dataTables.bootstrap5.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>

<script>
$(document).ready(function() {
    $('#recipesTable').DataTable({
        "paging": true,
        "searching": true,
        "ordering": true,
        "order": [[0, "asc"]],
        "language": {
            "url": "//cdn.datatables.net/plug-ins/1.13.6/i18n/el.json"
        }
    });

    // Slide down + fade out alert μετά από 6 δευτερόλεπτα
    <?php if($deleted_success && !empty($deleted_product_name)): ?>
    $("#deleteAlert").hide().slideDown("fast");
    setTimeout(function() {
        $("#deleteAlert").slideUp("slow");
    }, 6000);
    <?php endif; ?>
});
</script>

<?php include "footer.php"; ?>
