diff --git a/app/Models/Exchange/Company.php b/app/Models/Exchange/Company.php new file mode 100644 index 00000000..fc85080c --- /dev/null +++ b/app/Models/Exchange/Company.php @@ -0,0 +1,36 @@ +belongsToMany(User::class, (new Employee())->getTable(), 'company_id','user_id'); + } + +} + + + diff --git a/app/Models/Exchange/Employee.php b/app/Models/Exchange/Employee.php new file mode 100644 index 00000000..b310f078 --- /dev/null +++ b/app/Models/Exchange/Employee.php @@ -0,0 +1,37 @@ +HasMany(Company::class, 'company_id', 'id'); + } + + /** + * @return \Illuminate\Database\Eloquent\Relations\HasOne + **/ + public function user(): HasOne + { + return $this->hasOne(User::class, 'user_id', 'id'); + } +} diff --git a/app/Models/Exchange/User.php b/app/Models/Exchange/User.php new file mode 100644 index 00000000..cc102ba2 --- /dev/null +++ b/app/Models/Exchange/User.php @@ -0,0 +1,19 @@ +belongsToMany(Company::class, (new Employee())->getTable(), 'user_id', 'company_id'); + } +} diff --git a/config/database.php b/config/database.php index 4e8bc250..8b5c199f 100644 --- a/config/database.php +++ b/config/database.php @@ -82,7 +82,25 @@ return [ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ], - + 'exchange_db' => [ + 'driver' => 'mysql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE_EXCHANGE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET_IZYIM', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], 'pgsql' => [ 'driver' => 'pgsql', 'url' => env('DATABASE_URL'), diff --git a/database/seeders/CompanyEmployeesTableSeeder.php b/database/seeders/CompanyEmployeesTableSeeder.php new file mode 100644 index 00000000..d0ce9739 --- /dev/null +++ b/database/seeders/CompanyEmployeesTableSeeder.php @@ -0,0 +1,72 @@ +assignEmployeeProcessor = $assignEmployeeProcessor; + } + + + /** + * Run the database seeds. + * + * @return void + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function run() + { + DB::beginTransaction(); + foreach(ExchangeCompany::all() as $company) { + + if($connection = CompanyConnection::where('invitee_reference', $company->reference)->first()){ + + $companyModule = $connection->invitee; + + if($companyModule->employees()->exists()) { + continue; + } + + $exchangeUser = $company->employees()->first(); + + $user = new User(); + $user->name = $exchangeUser->name; + $user->email = $exchangeUser->email; + $user->password = $exchangeUser->password; + $user->type = $exchangeUser->type; + $user->status = $exchangeUser->status; + + $user->save(); + + $Object = new EmploymentObject($companyModule, $user); + + $this->assignEmployeeProcessor->execute($Object); + } + + } + DB::commit(); + + + } + +}