<?php

namespace Quarx\Modules\_camel_casePlural_;

use Illuminate\Routing\Router;
use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;

class _camel_casePlural_ModuleProvider extends ServiceProvider
{
    public function register()
    {
        // Publishes
        $this->publishes([
            __DIR__.'/Publishes/app'       => base_path('app'),
            __DIR__.'/Publishes/resources' => base_path('resources'),
        ]);

        // Load events
        $this->app->events->listen('eloquent.saved: Quarx\Modules\_camel_casePlural_\Models\_camel_case_', 'Quarx\Modules\_camel_casePlural_\Models\_camel_case_@afterSaved');

        // Load Routes
        $this->app->router->group(['middleware' => ['web']], function ($router) {
            require __DIR__.'/Routes/web.php';
        });

        // View namespace
        $this->app->view->addNamespace('_lower_casePlural_', __DIR__.'/Views');

        // Configs
        $this->app->config->set('quarx.modules._lower_casePlural_', include(__DIR__.'/config.php'));
    }
}
