Files
portal/database/seeders/CompaniesTableSeeder.php
T
2021-07-30 19:06:38 +08:00

79 lines
2.2 KiB
PHP

<?php
namespace Database\Seeders;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\CompanyType;
use App\Classes\ValueObjects\Constants\BusinessType;
use App\Classes\Modules\Unity\Processors\CreateEntityProcessor;
use Illuminate\Database\Seeder;
use App\Models\Company;
use App\Models\CompanyModule;
class CompaniesTableSeeder extends Seeder
{
private $createEntityProcessor;
public function __construct(CreateEntityProcessor $createEntityProcessor)
{
$this->createEntityProcessor = $createEntityProcessor;
}
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$companies = [
[
'id' => 1, //Reserve ID
'name' => 'CIEF SDN BHD',
'reference' => 'CIEF',
'type' => CompanyType::COMPANY_BUSINESS,
'status' => ApprovalStatus::APPROVED,
],
[
'name' => 'Guang Zhou',
'reference' => 'guangzhouwarehouse',
'type' => CompanyType::COMPANY_BUSINESS,
'status' => ApprovalStatus::APPROVED,
],
[
'name' => 'Yiwu',
'reference' => 'yiwuwarehouse',
'type' => CompanyType::COMPANY_BUSINESS,
'status' => ApprovalStatus::APPROVED,
]
];
if (!empty($companies)) {
foreach ($companies as $company) {
$unityEntity = $this->createEntityProcessor->execute($company['name']);
$company = Company::create($company);
$companyModule = [
'company_id' => $company->id,
'type' => BusinessType::WAREHOUSE,
'status' => ApprovalStatus::APPROVED,
'unity_hash_id' => $unityEntity->hash_id,
];
if($company['reference']=='CIEF'){
$companyModule['id']= 1; //Reserve ID
$companyModule['type']=BusinessType::FREIGHT_FORWARDER;
}
CompanyModule::create($companyModule);
}
}
}
}