<?php

namespace MODELORA\Core;

use MODELORA\Upload\Manager as UploadManager;
use MODELORA\Viewer\Renderer;
use MODELORA\Viewer\ErrorHandler;
use MODELORA\Viewer\Performance;
use MODELORA\Integrations\WooCommerce;
use MODELORA\Elementor\Widget;
use MODELORA\Api\Routes;

if (! defined('ABSPATH')) {
    exit;
}

class Plugin
{
    public function boot(): void
    {
        PostType::register();

        $assets = new Assets();
        $admin = new Admin();
        $shortcode = new Shortcode();
        $upload = new UploadManager();
        $renderer = new Renderer();
        $errors = new ErrorHandler();
        $performance = new Performance();
        $woo = new WooCommerce();
        $elementor = new Widget();
        $api = new Routes();

        $assets->register();
        $admin->register();
        $shortcode->register();
        $upload->register();
        $renderer->register();
        $errors->register();
        $performance->register();
        $woo->register();
        $elementor->register();
        $api->register();
    }
}
