app->singleton(\App\Scheduling\WindowResolver::class, fn () => new \App\Scheduling\WindowResolver( config('hado.fallback_day_minutes'), config('hado.fallback_hour_minutes'), config('hado.fallback_hours'), )); $this->app->singleton(\App\Channels\WebhookChannel::class, fn () => new \App\Channels\WebhookChannel(config('hado.presence_timeout'))); $this->app->singleton(\App\Channels\TelegramChannel::class, fn () => new \App\Channels\TelegramChannel( config('hado.telegram.token'), config('hado.telegram.seen_ttl'), )); $this->app->bind(\App\Delivery\Tick::class, fn ($app) => new \App\Delivery\Tick( $app->make(\App\Scheduling\DueResolver::class), $app->make(\App\Scheduling\StateResolver::class), $app->make(\App\Scheduling\WindowResolver::class), $app->make(\App\Channels\ChannelRegistry::class), $app->make('cache.store'), config('hado.presence_ttl'), )); } /** * Bootstrap any application services. */ public function boot(): void { // } }