CouponableServiceProvider::configurePackage()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
c 1
b 0
f 0
dl 0
loc 9
ccs 8
cts 8
cp 1
rs 10
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace MichaelRubel\Couponables;
6
7
use MichaelRubel\Couponables\Commands\MakeCouponCommand;
8
use MichaelRubel\Couponables\Models\Contracts\CouponContract;
9
use MichaelRubel\Couponables\Models\Contracts\CouponPivotContract;
10
use MichaelRubel\Couponables\Models\Coupon;
11
use MichaelRubel\Couponables\Models\Couponable;
12
use MichaelRubel\Couponables\Services\Contracts\CouponServiceContract;
13
use MichaelRubel\Couponables\Services\CouponService;
14
use Spatie\LaravelPackageTools\Package;
15
use Spatie\LaravelPackageTools\PackageServiceProvider;
16
17
class CouponableServiceProvider extends PackageServiceProvider
18
{
19
    /**
20
     * @var Package
21
     */
22
    public Package $package;
23
24
    /**
25
     * Configure the package.
26
     *
27
     * @param  Package  $package
28
     *
29
     * @return void
30
     */
31 75
    public function configurePackage(Package $package): void
32
    {
33 75
        $this->package = $package
34 75
            ->name('laravel-couponables')
35 75
            ->hasConfigFile()
36 75
            ->hasMigrations([
37 75
                'create_coupons_table',
38 75
                'create_couponables_table',
39 75
            ])->hasCommand(MakeCouponCommand::class);
40
    }
41
42
    /**
43
     * Register any package services.
44
     *
45
     * @return void
46
     */
47 75
    public function packageRegistered(): void
48
    {
49 75
        $model = config('couponables.model', Coupon::class);
50 75
        $this->app->scoped(CouponContract::class, $model);
51
52 75
        $pivot = config('couponables.pivot', Couponable::class);
53 75
        $this->app->scoped(CouponPivotContract::class, $pivot);
54
55 75
        $service = config('couponables.service', CouponService::class);
56 75
        $this->app->scoped(CouponServiceContract::class, $service);
57
    }
58
}
59