new: add country,currency,segment and segment constant seed #1

This commit is contained in:
weichien00
2021-06-25 03:10:47 +08:00
parent 0fbbfdaa3e
commit 5fbd5ef78a
4 changed files with 168 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace Database\Seeders;
use App\Classes\Modules\Countries\DataTransferObjects\CountryObject;
use App\Classes\Modules\Countries\Services\CreatesCountry;
use Illuminate\Database\Seeder;
class CountriesTableSeeder extends Seeder
{
/** @var CreatesCountry */
private $createsCountry;
/**
* CountriesTableSeeder constructor.
* @param CreatesCountry $createsCountry
*/
public function __construct(CreatesCountry $createsCountry)
{
$this->createsCountry = $createsCountry;
}
/**
* Run the database seeds.
*
* @return void
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function run()
{
foreach (['my', 'cn'] as $code) {
$object = new CountryObject(country($code));
$this->createsCountry->execute($object);
}
}
}
@@ -0,0 +1,49 @@
<?php
namespace Database\Seeders;
use App\Classes\Modules\Countries\Services\FetchesCountry;
use App\Classes\Modules\Currencies\DataTransferObjects\CurrencyObject;
use App\Classes\Modules\Currencies\Services\CreatesCurrency;
use Illuminate\Database\Seeder;
class CurrenciesTableSeeder extends Seeder
{
/** @var FetchesCountry */
private $fetchesCountry;
/** @var CreatesCurrency */
private $createsCurrency;
/**
* CurrenciesTableSeeder constructor.
* @param FetchesCountry $fetchesCountry
* @param CreatesCurrency $createsCurrency
*/
public function __construct(FetchesCountry $fetchesCountry, CreatesCurrency $createsCurrency)
{
$this->fetchesCountry = $fetchesCountry;
$this->createsCurrency = $createsCurrency;
}
/**
* Run the database seeds.
*
* @return void
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function run()
{
foreach (['my', 'cn'] as $code) {
$country = country($code);
$object = new CurrencyObject($country->getCurrency()['iso_4217_name'],
$code === 'cn' ? 'RMB' : $country->getCurrency()['iso_4217_code'],
$code === 'my' ? 'RM' : ( $code === 'cn' ? '¥' : '' ));
$this->createsCurrency->execute($this->fetchesCountry->execute(['name' => $country->getName()]), $object);
}
}
}
@@ -0,0 +1,54 @@
<?php
namespace Database\Seeders;
use App\Classes\Modules\Currencies\Services\FetchesCurrency;
use App\Classes\Modules\Segments\DataTransferObjects\ConstantObject;
use App\Classes\Modules\Segments\Services\CreatesConstant;
use App\Classes\Modules\Segments\Services\FetchesSegment;
use App\Classes\ValueObjects\Constants\SegmentConstants;
use Illuminate\Database\Seeder;
class SegmentConstantsTableSeeder extends Seeder
{
/** @var FetchesCurrency */
private $fetchesCurrency;
/** @var FetchesSegment */
private $fetchesSegment;
/** @var CreatesConstant */
private $createsSegmentConstant;
/**
* SegmentConstantsTableSeeder constructor.
* @param FetchesCurrency $fetchesCurrency
* @param FetchesSegment $fetchesSegment
* @param CreatesConstant $createsSegmentConstant
*/
public function __construct(FetchesCurrency $fetchesCurrency, FetchesSegment $fetchesSegment, CreatesConstant $createsSegmentConstant)
{
$this->fetchesCurrency = $fetchesCurrency;
$this->fetchesSegment = $fetchesSegment;
$this->createsSegmentConstant = $createsSegmentConstant;
}
/**
* Run the database seeds.
*
* @return void
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function run()
{
$object = new ConstantObject('System Primary Currency',
SegmentConstants::SYSTEM_PRIMARY_CURRENCY,
['id' => $this->fetchesCurrency->execute(['name' => country('my')->getName()])->id]);
$this->createsSegmentConstant->execute($this->fetchesSegment->execute(['Standard Segment']), $object);
}
}
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace Database\Seeders;
use App\Classes\Modules\Segments\DataTransferObjects\SegmentObject;
use App\Classes\Modules\Segments\Services\CreatesSegment;
use App\Classes\ValueObjects\Constants\SegmentConstants;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class SegmentsTableSeeder extends Seeder
{
/**
*/
public function run()
{
DB::table('segments')->insert([
'name' => 'Standard Segment',
'type' => SegmentConstants::STANDARD_SEGMENT
]);
}
}