<?php
// PHP 7.4 compatible analytics logging system.
// Saves daily metrics in data/analytics.json.

if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

require_once __DIR__ . '/db.php';

function init_analytics_file() {
    // No-op for backward compatibility since we transitioned to MySQL
}

function load_analytics_data() {
    $data = array();
    try {
        $db = get_db_connection();
        if ($db) {
            $stmt = $db->query("SELECT * FROM analytics ORDER BY date ASC");
            while ($row = $stmt->fetch()) {
                $data[$row['date']] = array(
                    'visitors' => (int)$row['visitors'],
                    'order_requests' => (int)$row['order_requests'],
                    'items_sold' => (int)$row['items_sold'],
                    'amount_sold' => (float)$row['amount_sold']
                );
            }
        }
    } catch (Exception $e) {
        error_log("Failed to load analytics: " . $e->getMessage());
    }
    return $data;
}

function save_analytics_data($data) {
    // No-op since tracking functions perform real-time updates direct to database
}

function get_today_key() {
    return date('Y-m-d');
}

// Track unique daily visitor session
function track_visitor() {
    $today = get_today_key();
    if (!isset($_SESSION['visited_today']) || $_SESSION['visited_today'] !== $today) {
        $_SESSION['visited_today'] = $today;
        
        try {
            $db = get_db_connection();
            if ($db) {
                $stmt = $db->prepare("INSERT INTO analytics (date, visitors, order_requests, items_sold, amount_sold) 
                                      VALUES (:date, 1, 0, 0, 0.0) 
                                      ON DUPLICATE KEY UPDATE visitors = visitors + 1");
                $stmt->execute(array('date' => $today));
            }
        } catch (Exception $e) {
            error_log("Failed to track visitor: " . $e->getMessage());
        }
    }
}

// Track checkout attempt (bag-to-checkout conversion hit)
function track_order_request() {
    $today = get_today_key();
    try {
        $db = get_db_connection();
        if ($db) {
            $stmt = $db->prepare("INSERT INTO analytics (date, visitors, order_requests, items_sold, amount_sold) 
                                  VALUES (:date, 0, 1, 0, 0.0) 
                                  ON DUPLICATE KEY UPDATE order_requests = order_requests + 1");
            $stmt->execute(array('date' => $today));
        }
    } catch (Exception $e) {
        error_log("Failed to track order request: " . $e->getMessage());
    }
}

// Track items sold and sales amounts on order success
function track_checkout_success($items_count, $total_amount) {
    $today = get_today_key();
    try {
        $db = get_db_connection();
        if ($db) {
            $stmt = $db->prepare("INSERT INTO analytics (date, visitors, order_requests, items_sold, amount_sold) 
                                  VALUES (:date, 0, 0, :items, :amount) 
                                  ON DUPLICATE KEY UPDATE items_sold = items_sold + :items, amount_sold = amount_sold + :amount");
            $stmt->execute(array(
                'date' => $today,
                'items' => $items_count,
                'amount' => $total_amount
            ));
        }
    } catch (Exception $e) {
        error_log("Failed to track checkout success: " . $e->getMessage());
    }
}
