diff --git a/app/Models/Provider.php b/app/Models/Provider.php new file mode 100644 index 00000000..20c8c207 --- /dev/null +++ b/app/Models/Provider.php @@ -0,0 +1,32 @@ +belongsTo(Organization::class, 'organization_id', 'id'); + } +} diff --git a/app/Models/RequestLog.php b/app/Models/RequestLog.php index a0b25c53..af3c8679 100644 --- a/app/Models/RequestLog.php +++ b/app/Models/RequestLog.php @@ -272,6 +272,11 @@ class RequestLog extends Model return $this->belongsTo(Service::class, 'service_code', 'code'); } + public function plan() + { + return $this->belongsTo(Plan::class, 'plan_id'); + } + public function requestLogBenefits() { return $this->hasMany(RequestLogBenefit::class, 'request_log_id'); diff --git a/database/migrations/2026_05_14_170000_create_providers_table.php b/database/migrations/2026_05_14_170000_create_providers_table.php new file mode 100644 index 00000000..4a99371b --- /dev/null +++ b/database/migrations/2026_05_14_170000_create_providers_table.php @@ -0,0 +1,42 @@ +id(); + $table->foreignId('organization_id')->constrained('organizations')->cascadeOnDelete(); + $table->string('username'); + $table->string('password'); + $table->string('code')->nullable(); + $table->string('status')->default('active'); + $table->string('header_token', 255)->nullable(); + $table->string('token', 255)->nullable(); + $table->timestamps(); + + $table->unique(['organization_id', 'username']); + $table->index(['organization_id', 'code', 'status']); + $table->index('token'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('providers'); + } +}; diff --git a/database/migrations/2026_05_14_171000_add_bridging_columns_to_request_logs_table.php b/database/migrations/2026_05_14_171000_add_bridging_columns_to_request_logs_table.php new file mode 100644 index 00000000..b7d45c20 --- /dev/null +++ b/database/migrations/2026_05_14_171000_add_bridging_columns_to_request_logs_table.php @@ -0,0 +1,94 @@ +unsignedBigInteger('plan_id')->nullable()->after('member_id'); + $table->index('plan_id'); + } + + if (!Schema::hasColumn('request_logs', 'admission_date')) { + $table->dateTime('admission_date')->nullable()->after('submission_date'); + } + + if (!Schema::hasColumn('request_logs', 'nomor_sep')) { + $table->string('nomor_sep')->nullable()->after('keterangan'); + } + + if (!Schema::hasColumn('request_logs', 'status_rujukan')) { + $table->string('status_rujukan')->nullable()->after('nomor_sep'); + } + + if (!Schema::hasColumn('request_logs', 'nomor_rujukan')) { + $table->string('nomor_rujukan')->nullable()->after('status_rujukan'); + } + + if (!Schema::hasColumn('request_logs', 'no_transaksi_provider')) { + $table->string('no_transaksi_provider')->nullable()->after('nomor_rujukan'); + } + + if (!Schema::hasColumn('request_logs', 'inacbgs_code')) { + $table->string('inacbgs_code')->nullable()->after('no_transaksi_provider'); + } + + if (!Schema::hasColumn('request_logs', 'inacbgs_amount')) { + $table->decimal('inacbgs_amount', 18, 2)->nullable()->after('inacbgs_code'); + } + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('request_logs', function (Blueprint $table) { + if (Schema::hasColumn('request_logs', 'inacbgs_amount')) { + $table->dropColumn('inacbgs_amount'); + } + + if (Schema::hasColumn('request_logs', 'inacbgs_code')) { + $table->dropColumn('inacbgs_code'); + } + + if (Schema::hasColumn('request_logs', 'no_transaksi_provider')) { + $table->dropColumn('no_transaksi_provider'); + } + + if (Schema::hasColumn('request_logs', 'nomor_rujukan')) { + $table->dropColumn('nomor_rujukan'); + } + + if (Schema::hasColumn('request_logs', 'status_rujukan')) { + $table->dropColumn('status_rujukan'); + } + + if (Schema::hasColumn('request_logs', 'nomor_sep')) { + $table->dropColumn('nomor_sep'); + } + + if (Schema::hasColumn('request_logs', 'admission_date')) { + $table->dropColumn('admission_date'); + } + + if (Schema::hasColumn('request_logs', 'plan_id')) { + $table->dropIndex(['plan_id']); + $table->dropColumn('plan_id'); + } + }); + } +};