From 0be9350b30347ef118bc7f4d924fdc0cacc28afb Mon Sep 17 00:00:00 2001 From: glovetleong Date: Sat, 26 Jun 2021 16:40:24 +0800 Subject: [PATCH] vendor machine seeder --- app/Models/ContractTemplate.php | 15 +++- config/constants.php | 17 +++- ...021_06_22_012552_create_entities_table.php | 1 + ...te_contract_template_obligations_table.php | 6 +- ...21_06_22_012651_create_contracts_table.php | 2 +- ...3528_create_contract_obligations_table.php | 5 +- database/seeders/DatabaseSeeder.php | 13 ++- .../SodaVendorContractEntitiesTableSeeder.php | 43 ++++++++++ ...tractObligationDependenciesTableSeeder.php | 39 +++++++++ ...daVendorContractObligationsTableSeeder.php | 85 +++++++++++++++++++ ...plateObligationDependenciesTableSeeder.php | 39 +++++++++ ...ContractTemplateObligationsTableSeeder.php | 69 +++++++++++++++ ...SodaVendorContractTemplatesTableSeeder.php | 30 +++++++ .../SodaVendorContractsTableSeeder.php | 40 +++++++++ .../SodaVendorEntitiesTableSeeder.php | 37 ++++++++ .../SodaVendorEntitySignaturesTableSeeder.php | 37 ++++++++ database/seeders/SodaVendorMachine/file | 0 database/seeders/UsersTableSeeder.php | 8 +- 18 files changed, 473 insertions(+), 13 deletions(-) create mode 100644 database/seeders/SodaVendorMachine/SodaVendorContractEntitiesTableSeeder.php create mode 100644 database/seeders/SodaVendorMachine/SodaVendorContractObligationDependenciesTableSeeder.php create mode 100644 database/seeders/SodaVendorMachine/SodaVendorContractObligationsTableSeeder.php create mode 100644 database/seeders/SodaVendorMachine/SodaVendorContractTemplateObligationDependenciesTableSeeder.php create mode 100644 database/seeders/SodaVendorMachine/SodaVendorContractTemplateObligationsTableSeeder.php create mode 100644 database/seeders/SodaVendorMachine/SodaVendorContractTemplatesTableSeeder.php create mode 100644 database/seeders/SodaVendorMachine/SodaVendorContractsTableSeeder.php create mode 100644 database/seeders/SodaVendorMachine/SodaVendorEntitiesTableSeeder.php create mode 100644 database/seeders/SodaVendorMachine/SodaVendorEntitySignaturesTableSeeder.php delete mode 100644 database/seeders/SodaVendorMachine/file diff --git a/app/Models/ContractTemplate.php b/app/Models/ContractTemplate.php index 1dae33b..d507095 100644 --- a/app/Models/ContractTemplate.php +++ b/app/Models/ContractTemplate.php @@ -2,10 +2,21 @@ namespace App\Models; -use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class ContractTemplate extends Model { - use HasFactory; + protected $table = 'contract_templates'; + + protected $appends = ['contract_template_obligation_list']; + + public function contract_template_obligation() + { + return $this->hasMany('App\Models\ContractTemplateObligation', 'contract_template_id'); + } + + public function getContractTemplateObligationListAttribute() + { + return $this->contract_template_obligation()->get(); + } } diff --git a/config/constants.php b/config/constants.php index 0613917..ecc82eb 100644 --- a/config/constants.php +++ b/config/constants.php @@ -7,5 +7,20 @@ 'short_title' => 'Unity', 'description' => 'Unity', ], - 'version' => 1 + 'version' => 1, + 'contract_obligation' => [ + 'complete_status' => [ + 'pending' => 9, + 'completed' => 1, + ], + 'accept_status' => [ + 'pending' => 9, + 'accepted' => 1, + ], + 'type' => [ + 'money' => 1, + 'offer_service' => 2, + 'received_service' => 3, + ] + ] ]; \ No newline at end of file diff --git a/database/migrations/2021_06_22_012552_create_entities_table.php b/database/migrations/2021_06_22_012552_create_entities_table.php index 1f2b1a3..6e2e66a 100644 --- a/database/migrations/2021_06_22_012552_create_entities_table.php +++ b/database/migrations/2021_06_22_012552_create_entities_table.php @@ -17,6 +17,7 @@ class CreateEntitiesTable extends Migration $table->id(); $table->bigInteger('user_id')->unsigned()->nullable(); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); + $table->string('name')->nullable(); $table->integer('status')->nullable()->default(1); $table->timestamps(); }); diff --git a/database/migrations/2021_06_22_012629_create_contract_template_obligations_table.php b/database/migrations/2021_06_22_012629_create_contract_template_obligations_table.php index 74f4968..7e35795 100644 --- a/database/migrations/2021_06_22_012629_create_contract_template_obligations_table.php +++ b/database/migrations/2021_06_22_012629_create_contract_template_obligations_table.php @@ -19,12 +19,14 @@ class CreateContractTemplateObligationsTable extends Migration $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->bigInteger('contract_template_id')->unsigned()->nullable(); $table->foreign('contract_template_id')->references('id')->on('contract_templates')->onDelete('cascade'); + $table->string('name')->nullable(); $table->float('sequence', 4, 2)->nullable(); - $table->string('reference'); - $table->json('content'); + $table->string('reference')->nullable(); + $table->json('content')->nullable(); $table->integer('must_complete')->nullable()->default(1); $table->integer('must_accept')->nullable()->default(1); $table->integer('complete_day_range')->nullable()->default(1); + $table->integer('type')->nullable()->default(1); $table->integer('status')->nullable()->default(1); $table->timestamps(); }); diff --git a/database/migrations/2021_06_22_012651_create_contracts_table.php b/database/migrations/2021_06_22_012651_create_contracts_table.php index 77120cf..006a733 100644 --- a/database/migrations/2021_06_22_012651_create_contracts_table.php +++ b/database/migrations/2021_06_22_012651_create_contracts_table.php @@ -19,7 +19,7 @@ class CreateContractsTable extends Migration $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->bigInteger('contract_template_id')->unsigned()->nullable(); $table->foreign('contract_template_id')->references('id')->on('contract_templates')->onDelete('cascade'); - $table->string('name'); + $table->string('name')->nullable(); $table->json('in_time_contract_template'); $table->integer('status')->nullable()->default(1); $table->timestamp('completed_at')->nullable(); diff --git a/database/migrations/2021_06_22_013528_create_contract_obligations_table.php b/database/migrations/2021_06_22_013528_create_contract_obligations_table.php index 4860f7d..d22c31f 100644 --- a/database/migrations/2021_06_22_013528_create_contract_obligations_table.php +++ b/database/migrations/2021_06_22_013528_create_contract_obligations_table.php @@ -21,8 +21,9 @@ class CreateContractObligationsTable extends Migration $table->foreign('contract_id')->references('id')->on('contracts')->onDelete('cascade'); $table->bigInteger('contract_entity_id')->unsigned()->nullable(); $table->foreign('contract_entity_id')->references('id')->on('contract_entities')->onDelete('cascade'); - $table->string('reference'); - $table->json('content'); + $table->string('name')->nullable(); + $table->string('reference')->nullable(); + $table->json('content')->nullable(); $table->integer('must_complete')->nullable()->default(1); $table->integer('must_accept')->nullable()->default(1); $table->integer('complete_status')->nullable()->default(1); diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index e34b981..24e5832 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -22,7 +22,18 @@ class DatabaseSeeder extends Seeder // User $this->call(UsersTableSeeder::class); - + + // Soda Vendor Machine + $this->call(SodaVendorMachine\SodaVendorContractTemplatesTableSeeder::class); + $this->call(SodaVendorMachine\SodaVendorContractTemplateObligationsTableSeeder::class); + $this->call(SodaVendorMachine\SodaVendorContractTemplateObligationDependenciesTableSeeder::class); + $this->call(SodaVendorMachine\SodaVendorEntitiesTableSeeder::class); + $this->call(SodaVendorMachine\SodaVendorEntitySignaturesTableSeeder::class); + $this->call(SodaVendorMachine\SodaVendorContractsTableSeeder::class); + $this->call(SodaVendorMachine\SodaVendorContractEntitiesTableSeeder::class); + $this->call(SodaVendorMachine\SodaVendorContractObligationsTableSeeder::class); + $this->call(SodaVendorMachine\SodaVendorContractObligationDependenciesTableSeeder::class); + DB::commit(); } } diff --git a/database/seeders/SodaVendorMachine/SodaVendorContractEntitiesTableSeeder.php b/database/seeders/SodaVendorMachine/SodaVendorContractEntitiesTableSeeder.php new file mode 100644 index 0000000..4c28431 --- /dev/null +++ b/database/seeders/SodaVendorMachine/SodaVendorContractEntitiesTableSeeder.php @@ -0,0 +1,43 @@ +insert([ + [ + 'id' => 1, + 'user_id' => 2, + 'contract_id' => 1, + 'entity_id' => 1, + 'entity_signature_id' => 1, + 'type' => 1, + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ], + [ + 'id' => 2, + 'user_id' => 2, + 'contract_id' => 1, + 'entity_id' => 2, + 'entity_signature_id' => 2, + 'type' => 1, + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ], + ]); + } +} \ No newline at end of file diff --git a/database/seeders/SodaVendorMachine/SodaVendorContractObligationDependenciesTableSeeder.php b/database/seeders/SodaVendorMachine/SodaVendorContractObligationDependenciesTableSeeder.php new file mode 100644 index 0000000..44796ef --- /dev/null +++ b/database/seeders/SodaVendorMachine/SodaVendorContractObligationDependenciesTableSeeder.php @@ -0,0 +1,39 @@ +insert([ + [ + 'id' => 1, + 'user_id' => 2, + 'contract_obligation_id' => 2, // vendor machine drop selected soda to user + 'depend_contract_obligation_id' => 1, // user insert coin and select soda at vendor machine + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ], + [ + 'id' => 2, + 'user_id' => 2, + 'contract_obligation_id' => 3, // user pickup the soda + 'depend_contract_obligation_id' => 2, // vendor machine drop selected soda to user + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ] + ]); + } +} \ No newline at end of file diff --git a/database/seeders/SodaVendorMachine/SodaVendorContractObligationsTableSeeder.php b/database/seeders/SodaVendorMachine/SodaVendorContractObligationsTableSeeder.php new file mode 100644 index 0000000..7366c35 --- /dev/null +++ b/database/seeders/SodaVendorMachine/SodaVendorContractObligationsTableSeeder.php @@ -0,0 +1,85 @@ +insert([ + [ + 'id' => 1, + 'user_id' => 2, + 'contract_id' => 1, + 'contract_entity_id' => 1, + 'name' => 'user insert coin and select soda at vendor machine', + 'reference' => null, + 'content' => null, + 'must_complete' => 1, + 'must_accept' => 1, + 'complete_status' => config('constants.contract_obligation.complete_status.pending'), + 'accept_status' => config('constants.contract_obligation.accept_status.pending'), + 'type' => config('constants.contract_obligation.type.money'), + 'status' => 1, + 'completed_at' => null, + 'failed_at' => null, + 'start_at' => Carbon::now(), + 'end_at' => Carbon::now()->addDays(1), + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ], + [ + 'id' => 2, + 'user_id' => 2, + 'contract_id' => 1, + 'contract_entity_id' => 2, + 'name' => 'vendor machine drop selected soda to user', + 'reference' => null, + 'content' => null, + 'must_complete' => 1, + 'must_accept' => 1, + 'complete_status' => config('constants.contract_obligation.complete_status.pending'), + 'accept_status' => config('constants.contract_obligation.accept_status.pending'), + 'type' => config('constants.contract_obligation.type.offer_service'), + 'status' => 1, + 'completed_at' => null, + 'failed_at' => null, + 'start_at' => null, + 'end_at' => null, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ], + [ + 'id' => 3, + 'user_id' => 2, + 'contract_id' => 1, + 'contract_entity_id' => 2, + 'name' => 'user pickup the soda', + 'reference' => null, + 'content' => null, + 'must_complete' => 1, + 'must_accept' => 1, + 'complete_status' => config('constants.contract_obligation.complete_status.pending'), + 'accept_status' => config('constants.contract_obligation.accept_status.pending'), + 'type' => config('constants.contract_obligation.type.offer_service'), + 'status' => 1, + 'completed_at' => Carbon::now(), + 'failed_at' => null, + 'start_at' => null, + 'end_at' => null, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ] + ]); + } +} \ No newline at end of file diff --git a/database/seeders/SodaVendorMachine/SodaVendorContractTemplateObligationDependenciesTableSeeder.php b/database/seeders/SodaVendorMachine/SodaVendorContractTemplateObligationDependenciesTableSeeder.php new file mode 100644 index 0000000..d78ff31 --- /dev/null +++ b/database/seeders/SodaVendorMachine/SodaVendorContractTemplateObligationDependenciesTableSeeder.php @@ -0,0 +1,39 @@ +insert([ + [ + 'id' => 1, + 'user_id' => 2, + 'contract_template_obligation_id' => 2, // vendor machine drop selected soda to user + 'depend_template_contract_obligation_id' => 1, // user insert coin and select soda at vendor machine + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ], + [ + 'id' => 2, + 'user_id' => 2, + 'contract_template_obligation_id' => 3, // user pickup the soda + 'depend_template_contract_obligation_id' => 2, // vendor machine drop selected soda to user + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ] + ]); + } +} \ No newline at end of file diff --git a/database/seeders/SodaVendorMachine/SodaVendorContractTemplateObligationsTableSeeder.php b/database/seeders/SodaVendorMachine/SodaVendorContractTemplateObligationsTableSeeder.php new file mode 100644 index 0000000..0d4c844 --- /dev/null +++ b/database/seeders/SodaVendorMachine/SodaVendorContractTemplateObligationsTableSeeder.php @@ -0,0 +1,69 @@ +insert([ + [ + 'id' => 1, + 'user_id' => 2, + 'contract_template_id' => 1, + 'name' => 'user insert coin and select soda at vendor machine', + 'sequence' => 1.0, + 'reference' => null, + 'content' => null, + 'must_complete' => 1, + 'must_accept' => 1, + 'complete_day_range' => 1, + 'type' => config('constants.contract_obligation.type.money'), + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ], + [ + 'id' => 2, + 'user_id' => 2, + 'contract_template_id' => 1, + 'name' => 'vendor machine drop selected soda to user', + 'sequence' => 2.0, + 'reference' => null, + 'content' => null, + 'must_complete' => 1, + 'must_accept' => 1, + 'complete_day_range' => 1, + 'type' => config('constants.contract_obligation.type.offer_service'), + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ], + [ + 'id' => 3, + 'user_id' => 2, + 'contract_template_id' => 1, + 'name' => 'user pickup the soda', + 'sequence' => 3.0, + 'reference' => null, + 'content' => null, + 'must_complete' => 1, + 'must_accept' => 1, + 'complete_day_range' => 1, + 'type' => config('constants.contract_obligation.type.received_service'), + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ] + ]); + } +} \ No newline at end of file diff --git a/database/seeders/SodaVendorMachine/SodaVendorContractTemplatesTableSeeder.php b/database/seeders/SodaVendorMachine/SodaVendorContractTemplatesTableSeeder.php new file mode 100644 index 0000000..d31c18e --- /dev/null +++ b/database/seeders/SodaVendorMachine/SodaVendorContractTemplatesTableSeeder.php @@ -0,0 +1,30 @@ +insert([ + [ + 'id' => 1, + 'user_id' => 2, + 'name' => 'Coca Cola Contract Service', + 'complete_day_range' => 1, + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ] + ]); + } +} \ No newline at end of file diff --git a/database/seeders/SodaVendorMachine/SodaVendorContractsTableSeeder.php b/database/seeders/SodaVendorMachine/SodaVendorContractsTableSeeder.php new file mode 100644 index 0000000..e001b1f --- /dev/null +++ b/database/seeders/SodaVendorMachine/SodaVendorContractsTableSeeder.php @@ -0,0 +1,40 @@ +insert([ + [ + 'id' => 1, + 'user_id' => $contract_template->user_id, + 'contract_template_id' => $contract_template->id, + 'name' => $contract_template->name, + 'in_time_contract_template' => json_encode($contract_template), + 'status' => 1, + 'completed_at' => null, + 'failed_at' => null, + 'start_at' => Carbon::now(), + 'end_at' => Carbon::now()->addDays($contract_template->complete_day_range), + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ] + ]); + } +} \ No newline at end of file diff --git a/database/seeders/SodaVendorMachine/SodaVendorEntitiesTableSeeder.php b/database/seeders/SodaVendorMachine/SodaVendorEntitiesTableSeeder.php new file mode 100644 index 0000000..47c9bf3 --- /dev/null +++ b/database/seeders/SodaVendorMachine/SodaVendorEntitiesTableSeeder.php @@ -0,0 +1,37 @@ +insert([ + [ + 'id' => 1, + 'user_id' => 2, + 'name' => 'Fat Kid', + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ], + [ + 'id' => 2, + 'user_id' => 2, + 'name' => 'Coca Cola Vendor Machine', + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ] + ]); + } +} \ No newline at end of file diff --git a/database/seeders/SodaVendorMachine/SodaVendorEntitySignaturesTableSeeder.php b/database/seeders/SodaVendorMachine/SodaVendorEntitySignaturesTableSeeder.php new file mode 100644 index 0000000..22c50df --- /dev/null +++ b/database/seeders/SodaVendorMachine/SodaVendorEntitySignaturesTableSeeder.php @@ -0,0 +1,37 @@ +insert([ + [ + 'id' => 1, + 'entity_id' => 1, + 'type' => 1, + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ], + [ + 'id' => 2, + 'entity_id' => 2, + 'type' => 1, + 'status' => 1, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ] + ]); + } +} \ No newline at end of file diff --git a/database/seeders/SodaVendorMachine/file b/database/seeders/SodaVendorMachine/file deleted file mode 100644 index e69de29..0000000 diff --git a/database/seeders/UsersTableSeeder.php b/database/seeders/UsersTableSeeder.php index 8cea828..effcc27 100644 --- a/database/seeders/UsersTableSeeder.php +++ b/database/seeders/UsersTableSeeder.php @@ -32,10 +32,10 @@ class UsersTableSeeder extends Seeder ], [ 'id' => 2, - 'first_name' => 'vendor machine', - 'last_name' => 'project', - 'username' => 'user 1', - 'email' => 'one@vendor-machine.com', + 'first_name' => 'Coca Cola', + 'last_name' => 'Project', + 'username' => 'cocal-cola', + 'email' => 'one@coca-cola.com', 'password' => bcrypt('pass123'), 'img' => null, 'status' => 1,