MINI Sh3ll
<?php
use Illuminate\Database\Seeder;
use App\Models\Company;
use App\User;
use App\Models\CompanyUser;
use App\Models\CompanyDomain;
use App\Models\Panel;
use App\Models\Plant;
use App\Models\PlantUser;
use App\Models\TreepyePlantDetails;
use App\Models\ModulePermission;
use Faker\Factory as Faker;
class TreepyeTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$service_id = array('jaqpsG4BOkKlycesndZ4','j6qqsG4BOkKlycesj9aG','jqqpsG4BOkKlyces8NZP');
$faker = Faker::create();
$company = new Company();
$company->company_name = 'Solar Company';
$company->country_id = 101;
$company->state = 22;
$company->city = 'Pune';
$company->address = 'Solar Company ,pune, Maharashtra';
$company->status = 1;
$company->save();
if($company) {
$companyDomain = new CompanyDomain();
$companyDomain->company_id = $company->id;
$companyDomain->domain_name = 'yopmail.com';
$companyDomain->save();
$user = new User();
$user->role_id = config('constants.role.company_admin.id');
$user->first_name = 'Company';
$user->last_name = 'Admin';
$user->middle_name = '';
$user->email = '[email protected]';
$user->password = bcrypt('User@123');
$user->address = $faker->address;
$user->city = '';
$user->mobile = '9'.rand(111111111,999999999);
$user->is_email_verified = 1;
$user->is_mobile_verified = 1;
$user->save();
$companyUser = new CompanyUser();
$companyUser->user_id = $user->id;
$companyUser->company_id = $company->id ;
$companyUser->save();
ModulePermission::where('user_id', $user->id)->delete();
$permissions = config('permissions_constants.permission.company_admin');
$count = count($permissions);
if ($count > 0) {
for ($i = 0; $i < $count; $i++) {
$module_id = getModule($permissions[$i]['module_code']);
ModulePermission::updateOrCreate([
'module_id' => $module_id,
'user_id' => $user->id,
'has_access' => 1,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
]);
}
}
$user = new User();
$user->role_id = config('constants.role.portal_admin.id');
$user->first_name = 'Portal';
$user->last_name = 'Admin';
$user->middle_name = '';
$user->email = '[email protected]';
$user->password = bcrypt('User@123');
$user->address = $faker->address;
$user->city = '';
$user->mobile = '9'.rand(111111111,999999999);
$user->is_email_verified = 1;
$user->is_mobile_verified = 1;
$user->save();
$companyUser = new CompanyUser();
$companyUser->user_id = $user->id;
$companyUser->company_id = $company->id ;
$companyUser->save();
ModulePermission::where('user_id', $user->id)->delete();
$permissions = config('permissions_constants.permission.portal_admin');
$count = count($permissions);
if ($count > 0) {
for ($i = 0; $i < $count; $i++) {
$module_id = getModule($permissions[$i]['module_code']);
ModulePermission::updateOrCreate([
'module_id' => $module_id,
'user_id' => $user->id,
'has_access' => 1,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
]);
}
}
$user = new User();
$user->role_id = config('constants.role.portal_support.id');
$user->first_name = 'Support';
$user->last_name = 'Admin';
$user->middle_name = '';
$user->email = '[email protected]';
$user->password = bcrypt('User@123');
$user->address = $faker->address;
$user->city = '';
$user->mobile = '9'.rand(111111111,999999999);
$user->is_email_verified = 1;
$user->is_mobile_verified = 1;
$user->save();
$companyUser = new CompanyUser();
$companyUser->user_id = $user->id;
$companyUser->company_id = $company->id ;
$companyUser->save();
ModulePermission::where('user_id', $user->id)->delete();
$permissions = config('permissions_constants.permission.portal_support');
$count = count($permissions);
if ($count > 0) {
for ($i = 0; $i < $count; $i++) {
$module_id = getModule($permissions[$i]['module_code']);
ModulePermission::updateOrCreate([
'module_id' => $module_id,
'user_id' => $user->id,
'has_access' => 1,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
]);
}
}
// $panels = config('panel_constant.panel');
// foreach ($panels as $panel) {
// $panelDetail = new Panel();
// $panelDetail->company_id = $company->id;
// $panelDetail->api_type = $panel['key'];
// $panelDetail->chart_type = config('charts_constant.'.$panel['key'].'.default_key');
// $panelDetail->save();
// }
$j= 0;
foreach (range(1,3) as $index) {
$plant = new Plant();
$plant->plant_name = 'Solar Company plant - '.$index;
$plant->company_id = $company->id;
$plant->capacity = 12500 ;
$plant->data_logger = 'Solar company plant';
$plant->inverter = 'Solar company plant';
$plant->country_id = 101;
$plant->state = 22;
$plant->city = 'Pune' ;
$plant->address = 'Solar Company ,pune, Maharashtra';
$plant->latitude = 16.36;
$plant->longitude =18.36;
$plant->chart_color = '#'.$this->random_color();
$plant->status = 1;
$plant->save();
$user = new User();
$user->role_id = config('constants.role.user.id');
$user->first_name = $faker->firstname;
$user->last_name = $faker->lastname;
$user->middle_name = '';
$user->email = $faker->firstname.'@yopmail.com';
$user->password = bcrypt('User@123');
$user->address = $faker->address;
$user->city = 'Pune';
$user->mobile = '9'.rand(111111111,999999999);
$user->is_email_verified = 1;
$user->is_mobile_verified = 1;
$user->save();
ModulePermission::where('user_id', $user->id)->delete();
$permissions = config('permissions_constants.permission.user');
$count = count($permissions);
if ($count > 0) {
for ($i = 0; $i < $count; $i++) {
$module_id = getModule($permissions[$i]['module_code']);
ModulePermission::updateOrCreate([
'module_id' => $module_id,
'user_id' => $user->id,
'has_access' => 1,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
]);
}
}
$companyUser = new CompanyUser();
$companyUser->user_id = $user->id;
$companyUser->company_id = $company->id ;
$companyUser->save();
$plantUser = new PlantUser();
$plantUser->user_id = $user->id;
$plantUser->plant_id = $plant->id ;
$plantUser->save();
$treepyeDetails = new TreepyePlantDetails();
$treepyeDetails->plant_id = $plant->id;
$treepyeDetails->company_id = $company->id;
$treepyeDetails->treepye_plant_id = $service_id[$j];
$treepyeDetails->save();
$j++;
}
}
}
/*
* Generate random color for plant
*/
public function random_color_part() {
return str_pad( dechex( mt_rand( 0, 255 ) ), 2, '0', STR_PAD_LEFT);
}
public function random_color() {
return $this->random_color_part() . $this->random_color_part() . $this->random_color_part();
}
}
OHA YOOOO