From 1a66420eb1f408501bb951fe3044a85ff321879a Mon Sep 17 00:00:00 2001 From: Ondrej Vlach Date: Wed, 7 Aug 2024 13:01:11 +0200 Subject: [PATCH] feat(providers): add provider for working days --- app/Providers/WorkingDaysProvider.php | 57 +++++++++++++++++++++++++++ bootstrap/providers.php | 3 +- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 app/Providers/WorkingDaysProvider.php diff --git a/app/Providers/WorkingDaysProvider.php b/app/Providers/WorkingDaysProvider.php new file mode 100644 index 0000000..c73c810 --- /dev/null +++ b/app/Providers/WorkingDaysProvider.php @@ -0,0 +1,57 @@ +app->singleton(PublicHolidaysStorageInterface::class, function () { + return new DatabaseStorage(); + }); + + $this->app->singleton(PublicHolidaysStateFactory::class, function() { + return new PublicHolidaysStateFactory( + $this->app->make(PublicHolidaysStorageInterface::class) + ); + }); + + $this->app->singleton(WorkingDayDeterminerFactory::class, function() { + return new WorkingDayDeterminerFactory( + $this->app->make(PublicHolidaysStateFactory::class) + ); + }); + + $this->app->singleton(DurationSolverFactory::class, function() { + return new DurationSolverFactory( + $this->app->make(WorkingDayDeterminerFactory::class), + $this->app->make(DurationConvertor::class) + ); + }); + + $this->app->singleton(PublicHolidaysGeneratorFactory::class, function() { + return new PublicHolidaysGeneratorFactory(); + }); + } + + /** + * Bootstrap any application services. + */ + public function boot(): void + { + } +} diff --git a/bootstrap/providers.php b/bootstrap/providers.php index 38b258d..94930ec 100644 --- a/bootstrap/providers.php +++ b/bootstrap/providers.php @@ -1,5 +1,6 @@