Files
ABSDEV/Analytics/Providers/AnalyticsServiceProvider.php
T
2026-10-12 14:50:13 +01:00

33 lines
1.3 KiB
PHP

<?php
namespace Modules\Analytics\Providers;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Support\ServiceProvider;
use Modules\Analytics\Console\AggregateAnalytics;
use Modules\Analytics\Console\PruneAnalytics;
use Modules\Analytics\Console\RunScheduledReports;
final class AnalyticsServiceProvider extends ServiceProvider
{
public function register(): void
{
$this->app->register(RouteServiceProvider::class);
$this->mergeConfigFrom(module_path('Analytics', 'Config/config.php'), 'analytics');
}
public function boot(): void
{
$this->loadMigrationsFrom(module_path('Analytics', 'Database/Migrations'));
$this->loadViewsFrom(module_path('Analytics', 'Resources/views'), 'analytics');
if ($this->app->runningInConsole()) {
$this->commands([AggregateAnalytics::class, PruneAnalytics::class, RunScheduledReports::class]);
$this->callAfterResolving(Schedule::class, function (Schedule $schedule): void {
$schedule->command('analytics:aggregate')->hourly()->withoutOverlapping();
$schedule->command('analytics:reports')->everyFifteenMinutes()->withoutOverlapping();
$schedule->command('analytics:prune')->dailyAt('02:30')->withoutOverlapping();
});
}
}
}