feat(dashboard): add price dashboard with Zonneplan integration

This commit is contained in:
2026-08-01 19:53:18 +02:00
parent 49919fef32
commit 1cd905ca4a
29 changed files with 1701 additions and 28 deletions
+6 -1
View File
@@ -2,6 +2,10 @@
namespace App\Providers;
use App\Features\Dashboard\Clients\ZonneplanPriceClient;
use App\Features\Dashboard\Contracts\PriceClient;
use App\Features\Dashboard\Contracts\PriceRepository;
use App\Features\Dashboard\Repositories\ZonneplanPriceRepository;
use Carbon\CarbonImmutable;
use Illuminate\Support\Facades\Date;
use Illuminate\Support\Facades\DB;
@@ -15,7 +19,8 @@ class AppServiceProvider extends ServiceProvider
*/
public function register(): void
{
//
$this->app->bind(PriceRepository::class, ZonneplanPriceRepository::class);
$this->app->bind(PriceClient::class, ZonneplanPriceClient::class);
}
/**
@@ -0,0 +1,27 @@
<?php
namespace App\Providers;
use Carbon\Carbon;
use Spatie\LaravelTypeScriptTransformer\LaravelData\Transformers\DataClassTransformer;
use Spatie\LaravelTypeScriptTransformer\TypeScriptTransformerApplicationServiceProvider as BaseTypeScriptTransformerServiceProvider;
use Spatie\TypeScriptTransformer\Formatters\PrettierFormatter;
use Spatie\TypeScriptTransformer\Transformers\AttributedClassTransformer;
use Spatie\TypeScriptTransformer\Transformers\EnumTransformer;
use Spatie\TypeScriptTransformer\TypeScriptTransformerConfigFactory;
use Spatie\TypeScriptTransformer\Writers\GlobalNamespaceWriter;
class TypeScriptTransformerServiceProvider extends BaseTypeScriptTransformerServiceProvider
{
protected function configure(TypeScriptTransformerConfigFactory $config): void
{
$config
->transformer(AttributedClassTransformer::class)
->transformer(EnumTransformer::class)
->transformer(DataClassTransformer::class)
->transformDirectories(app_path())
->writer(new GlobalNamespaceWriter('generated.d.ts'))
->replaceType(Carbon::class, 'string')
->formatter(PrettierFormatter::class);
}
}