<?php
header('Content-Type: application/json');
require_once '../../config/database.php';

try {
    $database = new Database();
    $db = $database->getConnection();
    
    $data = json_decode(file_get_contents('php://input'), true);
    $story_id = $data['story_id'] ?? null;
    
    if (!$story_id) {
        throw new Exception('Story ID is required');
    }
    
    // Get user ID if logged in
    session_start();
    $user_id = $_SESSION['user_id'] ?? null;
    $ip_address = $_SERVER['REMOTE_ADDR'];
    
    // Check if already viewed
    $query = "SELECT id FROM story_views WHERE story_id = ? AND ";
    if ($user_id) {
        $query .= "user_id = ?";
        $stmt = $db->prepare($query);
        $stmt->execute([$story_id, $user_id]);
    } else {
        $query .= "ip_address = ?";
        $stmt = $db->prepare($query);
        $stmt->execute([$story_id, $ip_address]);
    }
    
    if ($stmt->rowCount() == 0) {
        // Record new view
        $query = "INSERT INTO story_views (story_id, user_id, ip_address) VALUES (?, ?, ?)";
        $stmt = $db->prepare($query);
        $stmt->execute([$story_id, $user_id, $ip_address]);
        
        // Update views count
        $query = "UPDATE stories SET views_count = views_count + 1 WHERE id = ?";
        $stmt = $db->prepare($query);
        $stmt->execute([$story_id]);
    }
    
    echo json_encode(['success' => true]);
    
} catch (Exception $e) {
    http_response_code(400);
    echo json_encode(['error' => $e->getMessage()]);
}
