<?php
declare(strict_types=1);

namespace Plugins\HelloWorld;

use App\Core\Hooks;
use App\Core\PluginInterface;

/**
 * Hello World — افزونه نمونه
 *
 * این فایل نشان می‌دهد چگونه یک افزونه ساخته می‌شود.
 * برای ساخت افزونه جدید این پوشه را کپی کرده و نام و کلاس را تغییر دهید.
 */
class Plugin implements PluginInterface
{
    /**
     * در هر درخواست وقتی افزونه فعال است اجرا می‌شود.
     * Hook ها و Route های افزونه اینجا ثبت می‌شوند.
     */
    public function boot(): void
    {
        // مثال: اضافه کردن پیام به پیشخوان ادمین
        Hooks::addAction('admin_dashboard_widgets', function () {
            echo '<div class="col-md-6 col-lg-4">
                <div class="card border-0 shadow-sm h-100" style="border-right:4px solid #6366f1 !important;">
                    <div class="card-body">
                        <div class="d-flex align-items-center gap-3 mb-2">
                            <div style="width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.2rem;">
                                <i class="bi bi-plug-fill"></i>
                            </div>
                            <div>
                                <div class="fw-bold">Hello World Plugin</div>
                                <div class="small text-muted">نسخه ۱.۰.۰</div>
                            </div>
                        </div>
                        <p class="small text-muted mb-0">این افزونه نمونه است. برای توسعه افزونه خود این پوشه را کپی کنید.</p>
                    </div>
                </div>
            </div>';
        });

        // مثال: اضافه کردن آیتم به سایدبار ادمین
        Hooks::addFilter('admin_sidebar_items', function (array $items): array {
            // $items['section_name'][] = ['label' => 'My Page', 'url' => '/admin/my-page', 'icon' => 'star'];
            return $items;
        });

        // مثال: اضافه کردن Route جدید
        Hooks::addFilter('routes', function (array $routes): array {
            // $routes[] = ['GET', '/admin/hello', ['Plugins\\HelloWorld\\Controllers\\HelloController', 'index'], ['admin']];
            return $routes;
        });
    }

    /**
     * هنگام فعال‌سازی اجرا می‌شود (فقط یک بار).
     * اینجا جدول‌های دیتابیس را بسازید.
     */
    public function activate(): void
    {
        // مثال:
        // $pdo = \App\Core\Database::pdo();
        // $pdo->exec("CREATE TABLE IF NOT EXISTS hello_world_data (id INT AUTO_INCREMENT PRIMARY KEY, message TEXT) ENGINE=InnoDB");
    }

    /**
     * هنگام غیرفعال‌سازی اجرا می‌شود.
     * جدول‌ها را اینجا حذف نکنید — فقط تنظیمات موقت را پاک کنید.
     */
    public function deactivate(): void
    {
        // پاک‌سازی کش، تنظیمات موقت، ...
    }

    /**
     * هنگام حذف کامل افزونه اجرا می‌شود.
     * تمام داده‌های ایجادشده توسط این افزونه را حذف کنید.
     */
    public function uninstall(): void
    {
        // مثال:
        // $pdo = \App\Core\Database::pdo();
        // $pdo->exec("DROP TABLE IF EXISTS hello_world_data");
    }
}
