<?php
// app/models/Task.php

class Task {
    private $pdo;

    public function __construct($pdo) {
        $this->pdo = $pdo;
    }

    // Get all tasks
    public function getAll() {
        try {
            $sql = "SELECT tasks.*, projects.name as project_name, users.name as assignee_name 
                    FROM tasks 
                    LEFT JOIN projects ON tasks.project_id = projects.id 
                    LEFT JOIN users ON tasks.assigned_to = users.id 
                    ORDER BY tasks.due_date ASC";
            $stmt = $this->pdo->query($sql);
            return $stmt->fetchAll();
        } catch (PDOException $e) {
            return [];
        }
    }

    // Create a new task
    public function create($data) {
        $sql = "INSERT INTO tasks (project_id, title, description, assigned_to, priority, due_date, status, created_by) 
                VALUES (:pid, :title, :desc, :assign, :priority, :due, 'pending', :creator)";
        
        $stmt = $this->pdo->prepare($sql);
        return $stmt->execute([
            'pid' => $data['project_id'],
            'title' => $data['title'],
            'desc' => $data['description'],
            'assign' => $data['assigned_to'],
            'priority' => $data['priority'],
            'due' => $data['due_date'],
            'creator' => $data['created_by']
        ]);
    }

    // Update Task Status
    public function updateStatus($taskId, $newStatus) {
        $stmt = $this->pdo->prepare("UPDATE tasks SET status = :status WHERE id = :id");
        return $stmt->execute(['status' => $newStatus, 'id' => $taskId]);
    }
// ... inside Task class ...

    // Count tasks by specific status
    public function countByStatus($status) {
        $stmt = $this->pdo->prepare("SELECT COUNT(*) FROM tasks WHERE status = :status");
        $stmt->execute(['status' => $status]);
        return $stmt->fetchColumn();
    }

    // Get recent activity (Last 5 tasks created or updated)
    public function getRecentActivity() {
        try {
            $sql = "SELECT tasks.title, tasks.created_at, projects.name as project_name, users.name as user_name 
                    FROM tasks 
                    LEFT JOIN projects ON tasks.project_id = projects.id 
                    LEFT JOIN users ON tasks.created_by = users.id 
                    ORDER BY tasks.created_at DESC LIMIT 5";
            $stmt = $this->pdo->query($sql);
            return $stmt->fetchAll();
        } catch (PDOException $e) {
            return [];
        }
    }
    
}
?>