<?php
// app/controllers/DashboardController.php

// Fix paths to be absolute
$appRoot = __DIR__ . '/..';
require_once $appRoot . '/models/Project.php';
require_once $appRoot . '/models/Task.php';
require_once $appRoot . '/models/User.php';

class DashboardController {
    private $pdo;
    private $projectModel;
    private $taskModel;
    private $userModel;

    public function __construct($pdo) {
        $this->pdo = $pdo;
        $this->projectModel = new Project($pdo);
        $this->taskModel = new Task($pdo);
        $this->userModel = new User($pdo);
    }

    public function index() {
        // 1. Fetch Real Stats
        $activeProjects = $this->projectModel->countActive();
        $pendingTasks   = $this->taskModel->countByStatus('pending');
        $inProcessTasks = $this->taskModel->countByStatus('in_process');
        $completedTasks = $this->taskModel->countByStatus('completed');
        
        // 2. Calculate "Productivity" (Percentage of completed vs total tasks)
        $totalTasks = $pendingTasks + $inProcessTasks + $completedTasks;
        $productivity = 0;
        if ($totalTasks > 0) {
            $productivity = round(($completedTasks / $totalTasks) * 100);
        }

        // 3. Fetch Recent Activity
        $recentActivity = $this->taskModel->getRecentActivity();

        // 4. Prepare Data for View
        $stats = [
            'active_projects' => $activeProjects,
            'pending_tasks'   => $pendingTasks + $inProcessTasks, // Combine pending + in process for "To Do"
            'completed_tasks' => $completedTasks,
            'productivity'    => $productivity
        ];

        $pageTitle = "Dashboard";
        $viewsPath = __DIR__ . '/../views';
        
        require_once $viewsPath . '/layouts/header.php';
        require_once $viewsPath . '/dashboard/index.php';
        require_once $viewsPath . '/layouts/footer.php';
    }
}
?>