Changeset View
Changeset View
Standalone View
Standalone View
src/database/seeds/PackageSeeder.php
<?php | <?php | ||||
use App\Package; | use App\Package; | ||||
use App\Sku; | use App\Sku; | ||||
use Illuminate\Database\Seeder; | use Illuminate\Database\Seeder; | ||||
// phpcs:ignore | // phpcs:ignore | ||||
class PackageSeeder extends Seeder | class PackageSeeder extends Seeder | ||||
{ | { | ||||
/** | /** | ||||
* Run the database seeds. | * Run the database seeds. | ||||
* | * | ||||
* @return void | * @return void | ||||
*/ | */ | ||||
public function run() | public function run() | ||||
{ | { | ||||
$skuGroupware = Sku::firstOrCreate(['title' => 'groupware']); | |||||
$skuMailbox = Sku::firstOrCreate(['title' => 'mailbox']); | |||||
$skuStorage = Sku::firstOrCreate(['title' => 'storage']); | |||||
$package = Package::create( | $package = Package::create( | ||||
[ | [ | ||||
'title' => 'kolab', | 'title' => 'kolab', | ||||
'description' => 'A fully functional groupware account.', | 'description' => 'A fully functional groupware account.', | ||||
'discount_rate' => 0 | 'discount_rate' => 0 | ||||
] | ] | ||||
); | ); | ||||
$skus = [ | $skus = [ | ||||
Sku::firstOrCreate(['title' => 'mailbox']), | $skuMailbox, | ||||
Sku::firstOrCreate(['title' => 'storage']), | $skuGroupware, | ||||
Sku::firstOrCreate(['title' => 'groupware']) | $skuStorage | ||||
]; | ]; | ||||
$package->skus()->saveMany($skus); | $package->skus()->saveMany($skus); | ||||
// This package contains 2 units of the storage SKU, which just so happens to also | // This package contains 2 units of the storage SKU, which just so happens to also | ||||
// be the number of SKU free units. | // be the number of SKU free units. | ||||
$package->skus()->updateExistingPivot( | $package->skus()->updateExistingPivot( | ||||
Sku::firstOrCreate(['title' => 'storage']), | $skuStorage, | ||||
['qty' => 2], | ['qty' => 2], | ||||
false | false | ||||
); | ); | ||||
$package = Package::create( | $package = Package::create( | ||||
[ | [ | ||||
'title' => 'lite', | 'title' => 'lite', | ||||
'description' => 'Just mail and no more.', | 'description' => 'Just mail and no more.', | ||||
'discount_rate' => 0 | 'discount_rate' => 0 | ||||
] | ] | ||||
); | ); | ||||
$skus = [ | $skus = [ | ||||
Sku::firstOrCreate(['title' => 'mailbox']), | $skuMailbox, | ||||
Sku::firstOrCreate(['title' => 'storage']) | $skuStorage | ||||
]; | ]; | ||||
$package->skus()->saveMany($skus); | $package->skus()->saveMany($skus); | ||||
$package->skus()->updateExistingPivot( | $package->skus()->updateExistingPivot( | ||||
Sku::firstOrCreate(['title' => 'storage']), | Sku::firstOrCreate(['title' => 'storage']), | ||||
['qty' => 2], | ['qty' => 2], | ||||
false | false | ||||
Show All 17 Lines |