removed KycRiskCalculator, added 3 new field for the database table data_pool_backend, added simple risk level and mapping funcion for these new risk factor
This commit is contained in:
+299
@@ -0,0 +1,299 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('transactions', function (Blueprint $table) {
|
||||
// Entity Corporate Information
|
||||
$table->jsonb('entity_corporate_summary')->nullable();
|
||||
$table->jsonb('entity_corporate_history')->nullable();
|
||||
$table->jsonb('entity_corporate_purpose')->nullable();
|
||||
$table->jsonb('entity_corporate_sector')->nullable();
|
||||
$table->jsonb('entity_corporate_nace')->nullable();
|
||||
$table->jsonb('entity_corporate_products')->nullable();
|
||||
$table->jsonb('entity_corporate_markets')->nullable();
|
||||
$table->jsonb('entity_corporate_supply')->nullable();
|
||||
$table->jsonb('entity_corporate_name')->nullable();
|
||||
$table->jsonb('entity_corporate_form')->nullable();
|
||||
$table->jsonb('entity_corporate_forum')->nullable();
|
||||
$table->jsonb('entity_corporate_HQ')->nullable();
|
||||
$table->jsonb('entity_corporate_locations')->nullable();
|
||||
$table->jsonb('entity_corporate_holding')->nullable();
|
||||
$table->jsonb('entity_corporate_shareholders')->nullable();
|
||||
$table->jsonb('entity_corporate_board')->nullable();
|
||||
$table->jsonb('entity_corporate_supervisory')->nullable();
|
||||
$table->jsonb('entity_corporate_powerofattorney')->nullable();
|
||||
$table->jsonb('entity_corporate_taxID')->nullable();
|
||||
$table->jsonb('entity_corporate_LEI')->nullable();
|
||||
$table->jsonb('entity_corporate_UBO')->nullable();
|
||||
$table->jsonb('entity_corporate_employeecount')->nullable();
|
||||
$table->jsonb('entity_corporate_turnover')->nullable();
|
||||
$table->jsonb('entity_corporate_EBIT')->nullable();
|
||||
$table->jsonb('entity_corporate_netprofits')->nullable();
|
||||
$table->jsonb('entity_corporate_balancesheet')->nullable();
|
||||
$table->jsonb('entity_corporate_auditfindings')->nullable();
|
||||
$table->jsonb('entity_corporate_insolvency')->nullable();
|
||||
$table->jsonb('entity_corporate_liquidation')->nullable();
|
||||
$table->jsonb('entity_corporate_adhoc')->nullable();
|
||||
$table->jsonb('entity_corporate_pressrelease')->nullable();
|
||||
$table->jsonb('entity_corporate_votes')->nullable();
|
||||
$table->jsonb('entity_corporate_directordealings')->nullable();
|
||||
$table->jsonb('entity_corporate_brands')->nullable();
|
||||
$table->jsonb('entity_corporate_website')->nullable();
|
||||
$table->jsonb('entity_corporate_domain')->nullable();
|
||||
$table->jsonb('entity_corporate_IBAN')->nullable();
|
||||
$table->jsonb('entity_corporate_solvency')->nullable();
|
||||
$table->jsonb('entity_corporate_rating')->nullable();
|
||||
$table->jsonb('entity_corporate_ESG')->nullable();
|
||||
$table->jsonb('entity_corporate_license')->nullable();
|
||||
$table->jsonb('entity_corporate_warnings')->nullable();
|
||||
$table->jsonb('entity_corporate_eusanctions')->nullable();
|
||||
$table->jsonb('entity_corporate_ofacsanctions')->nullable();
|
||||
$table->jsonb('entity_corporate_uksanctions')->nullable();
|
||||
$table->jsonb('entity_corporate_pepexposure')->nullable();
|
||||
$table->jsonb('entity_corporate_adversemediascanning')->nullable();
|
||||
$table->jsonb('entity_corporate_corruptionexposure')->nullable();
|
||||
$table->jsonb('entity_corporate_AMLexposure')->nullable();
|
||||
$table->jsonb('entity_corporate_CTYexposure')->nullable();
|
||||
$table->jsonb('entity_corporate_adverse')->nullable();
|
||||
$table->jsonb('entity_corporate_pep')->nullable();
|
||||
$table->jsonb('entity_corporate_adverse2')->nullable();
|
||||
$table->jsonb('entity_corporate_exportcontrol')->nullable();
|
||||
$table->jsonb('entity_corporate_mediamatch')->nullable();
|
||||
$table->jsonb('entity_corporate_haven')->nullable();
|
||||
$table->jsonb('entity_corporate_insiders')->nullable();
|
||||
$table->jsonb('entity_corporate_courtcases')->nullable();
|
||||
$table->jsonb('entity_corporate_manda')->nullable();
|
||||
$table->jsonb('entity_corporate_pepdetail')->nullable();
|
||||
|
||||
// Counterparty Corporate Information
|
||||
$table->jsonb('counterparty_corporate_summary')->nullable();
|
||||
$table->jsonb('counterparty_corporate_history')->nullable();
|
||||
$table->jsonb('counterparty_corporate_purpose')->nullable();
|
||||
$table->jsonb('counterparty_corporate_sector')->nullable();
|
||||
$table->jsonb('counterparty_corporate_nace')->nullable();
|
||||
$table->jsonb('counterparty_corporate_products')->nullable();
|
||||
$table->jsonb('counterparty_corporate_markets')->nullable();
|
||||
$table->jsonb('counterparty_corporate_supply')->nullable();
|
||||
$table->jsonb('counterparty_corporate_name')->nullable();
|
||||
$table->jsonb('counterparty_corporate_form')->nullable();
|
||||
$table->jsonb('counterparty_corporate_forum')->nullable();
|
||||
$table->jsonb('counterparty_corporate_HQ')->nullable();
|
||||
$table->jsonb('counterparty_corporate_locations')->nullable();
|
||||
$table->jsonb('counterparty_corporate_holding')->nullable();
|
||||
$table->jsonb('counterparty_corporate_shareholders')->nullable();
|
||||
$table->jsonb('counterparty_corporate_board')->nullable();
|
||||
$table->jsonb('counterparty_corporate_supervisory')->nullable();
|
||||
$table->jsonb('counterparty_corporate_powerofattorney')->nullable();
|
||||
$table->jsonb('counterparty_corporate_taxID')->nullable();
|
||||
$table->jsonb('counterparty_corporate_LEI')->nullable();
|
||||
$table->jsonb('counterparty_corporate_UBO')->nullable();
|
||||
$table->jsonb('counterparty_corporate_employeecount')->nullable();
|
||||
$table->jsonb('counterparty_corporate_turnover')->nullable();
|
||||
$table->jsonb('counterparty_corporate_EBIT')->nullable();
|
||||
$table->jsonb('counterparty_corporate_netprofits')->nullable();
|
||||
$table->jsonb('counterparty_corporate_balancesheet')->nullable();
|
||||
$table->jsonb('counterparty_corporate_auditfindings')->nullable();
|
||||
$table->jsonb('counterparty_corporate_insolvency')->nullable();
|
||||
$table->jsonb('counterparty_corporate_liquidation')->nullable();
|
||||
$table->jsonb('counterparty_corporate_adhoc')->nullable();
|
||||
$table->jsonb('counterparty_corporate_pressrelease')->nullable();
|
||||
$table->jsonb('counterparty_corporate_votes')->nullable();
|
||||
$table->jsonb('counterparty_corporate_directordealings')->nullable();
|
||||
$table->jsonb('counterparty_corporate_brands')->nullable();
|
||||
$table->jsonb('counterparty_corporate_website')->nullable();
|
||||
$table->jsonb('counterparty_corporate_domain')->nullable();
|
||||
$table->jsonb('counterparty_corporate_IBAN')->nullable();
|
||||
$table->jsonb('counterparty_corporate_solvency')->nullable();
|
||||
$table->jsonb('counterparty_corporate_rating')->nullable();
|
||||
$table->jsonb('counterparty_corporate_ESG')->nullable();
|
||||
$table->jsonb('counterparty_corporate_license')->nullable();
|
||||
$table->jsonb('counterparty_corporate_warnings')->nullable();
|
||||
$table->jsonb('counterparty_corporate_eusanctions')->nullable();
|
||||
$table->jsonb('counterparty_corporate_ofacsanctions')->nullable();
|
||||
$table->jsonb('counterparty_corporate_uksanctions')->nullable();
|
||||
$table->jsonb('counterparty_corporate_pepexposure')->nullable();
|
||||
$table->jsonb('counterparty_corporate_adversemediascanning')->nullable();
|
||||
$table->jsonb('counterparty_corporate_corruptionexposure')->nullable();
|
||||
$table->jsonb('counterparty_corporate_AMLexposure')->nullable();
|
||||
$table->jsonb('counterparty_corporate_CTYexposure')->nullable();
|
||||
$table->jsonb('counterparty_corporate_adverse')->nullable();
|
||||
$table->jsonb('counterparty_corporate_pep')->nullable();
|
||||
$table->jsonb('counterparty_corporate_adverse2')->nullable();
|
||||
$table->jsonb('counterparty_corporate_exportcontrol')->nullable();
|
||||
$table->jsonb('counterparty_corporate_mediamatch')->nullable();
|
||||
$table->jsonb('counterparty_corporate_haven')->nullable();
|
||||
$table->jsonb('counterparty_corporate_insiders')->nullable();
|
||||
$table->jsonb('counterparty_corporate_courtcases')->nullable();
|
||||
$table->jsonb('counterparty_corporate_manda')->nullable();
|
||||
$table->jsonb('counterparty_corporate_pepdetail')->nullable();
|
||||
|
||||
// Entity Risk Assessment
|
||||
$table->jsonb('entity_sanctions_circumvention')->nullable();
|
||||
$table->jsonb('entity_corruption_sector')->nullable();
|
||||
$table->jsonb('entity_corruption_country')->nullable();
|
||||
$table->jsonb('entity_corruption_relationship')->nullable();
|
||||
$table->jsonb('entity_country_risk')->nullable();
|
||||
|
||||
// Counterparty Risk Assessment
|
||||
$table->jsonb('counterparty_sanctions_circumvention')->nullable();
|
||||
$table->jsonb('counterparty_corruption_sector')->nullable();
|
||||
$table->jsonb('counterparty_corruption_country')->nullable();
|
||||
$table->jsonb('counterparty_corruption_relationship')->nullable();
|
||||
$table->jsonb('counterparty_country_risk')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('transactions', function (Blueprint $table) {
|
||||
$table->dropColumn([
|
||||
// Entity Corporate Information
|
||||
'entity_corporate_summary',
|
||||
'entity_corporate_history',
|
||||
'entity_corporate_purpose',
|
||||
'entity_corporate_sector',
|
||||
'entity_corporate_nace',
|
||||
'entity_corporate_products',
|
||||
'entity_corporate_markets',
|
||||
'entity_corporate_supply',
|
||||
'entity_corporate_name',
|
||||
'entity_corporate_form',
|
||||
'entity_corporate_forum',
|
||||
'entity_corporate_HQ',
|
||||
'entity_corporate_locations',
|
||||
'entity_corporate_holding',
|
||||
'entity_corporate_shareholders',
|
||||
'entity_corporate_board',
|
||||
'entity_corporate_supervisory',
|
||||
'entity_corporate_powerofattorney',
|
||||
'entity_corporate_taxID',
|
||||
'entity_corporate_LEI',
|
||||
'entity_corporate_UBO',
|
||||
'entity_corporate_employeecount',
|
||||
'entity_corporate_turnover',
|
||||
'entity_corporate_EBIT',
|
||||
'entity_corporate_netprofits',
|
||||
'entity_corporate_balancesheet',
|
||||
'entity_corporate_auditfindings',
|
||||
'entity_corporate_insolvency',
|
||||
'entity_corporate_liquidation',
|
||||
'entity_corporate_adhoc',
|
||||
'entity_corporate_pressrelease',
|
||||
'entity_corporate_votes',
|
||||
'entity_corporate_directordealings',
|
||||
'entity_corporate_brands',
|
||||
'entity_corporate_website',
|
||||
'entity_corporate_domain',
|
||||
'entity_corporate_IBAN',
|
||||
'entity_corporate_solvency',
|
||||
'entity_corporate_rating',
|
||||
'entity_corporate_ESG',
|
||||
'entity_corporate_license',
|
||||
'entity_corporate_warnings',
|
||||
'entity_corporate_eusanctions',
|
||||
'entity_corporate_ofacsanctions',
|
||||
'entity_corporate_uksanctions',
|
||||
'entity_corporate_pepexposure',
|
||||
'entity_corporate_adversemediascanning',
|
||||
'entity_corporate_corruptionexposure',
|
||||
'entity_corporate_AMLexposure',
|
||||
'entity_corporate_CTYexposure',
|
||||
'entity_corporate_adverse',
|
||||
'entity_corporate_pep',
|
||||
'entity_corporate_adverse2',
|
||||
'entity_corporate_exportcontrol',
|
||||
'entity_corporate_mediamatch',
|
||||
'entity_corporate_haven',
|
||||
'entity_corporate_insiders',
|
||||
'entity_corporate_courtcases',
|
||||
'entity_corporate_manda',
|
||||
'entity_corporate_pepdetail',
|
||||
// Counterparty Corporate Information
|
||||
'counterparty_corporate_summary',
|
||||
'counterparty_corporate_history',
|
||||
'counterparty_corporate_purpose',
|
||||
'counterparty_corporate_sector',
|
||||
'counterparty_corporate_nace',
|
||||
'counterparty_corporate_products',
|
||||
'counterparty_corporate_markets',
|
||||
'counterparty_corporate_supply',
|
||||
'counterparty_corporate_name',
|
||||
'counterparty_corporate_form',
|
||||
'counterparty_corporate_forum',
|
||||
'counterparty_corporate_HQ',
|
||||
'counterparty_corporate_locations',
|
||||
'counterparty_corporate_holding',
|
||||
'counterparty_corporate_shareholders',
|
||||
'counterparty_corporate_board',
|
||||
'counterparty_corporate_supervisory',
|
||||
'counterparty_corporate_powerofattorney',
|
||||
'counterparty_corporate_taxID',
|
||||
'counterparty_corporate_LEI',
|
||||
'counterparty_corporate_UBO',
|
||||
'counterparty_corporate_employeecount',
|
||||
'counterparty_corporate_turnover',
|
||||
'counterparty_corporate_EBIT',
|
||||
'counterparty_corporate_netprofits',
|
||||
'counterparty_corporate_balancesheet',
|
||||
'counterparty_corporate_auditfindings',
|
||||
'counterparty_corporate_insolvency',
|
||||
'counterparty_corporate_liquidation',
|
||||
'counterparty_corporate_adhoc',
|
||||
'counterparty_corporate_pressrelease',
|
||||
'counterparty_corporate_votes',
|
||||
'counterparty_corporate_directordealings',
|
||||
'counterparty_corporate_brands',
|
||||
'counterparty_corporate_website',
|
||||
'counterparty_corporate_domain',
|
||||
'counterparty_corporate_IBAN',
|
||||
'counterparty_corporate_solvency',
|
||||
'counterparty_corporate_rating',
|
||||
'counterparty_corporate_ESG',
|
||||
'counterparty_corporate_license',
|
||||
'counterparty_corporate_warnings',
|
||||
'counterparty_corporate_eusanctions',
|
||||
'counterparty_corporate_ofacsanctions',
|
||||
'counterparty_corporate_uksanctions',
|
||||
'counterparty_corporate_pepexposure',
|
||||
'counterparty_corporate_adversemediascanning',
|
||||
'counterparty_corporate_corruptionexposure',
|
||||
'counterparty_corporate_AMLexposure',
|
||||
'counterparty_corporate_CTYexposure',
|
||||
'counterparty_corporate_adverse',
|
||||
'counterparty_corporate_pep',
|
||||
'counterparty_corporate_adverse2',
|
||||
'counterparty_corporate_exportcontrol',
|
||||
'counterparty_corporate_mediamatch',
|
||||
'counterparty_corporate_haven',
|
||||
'counterparty_corporate_insiders',
|
||||
'counterparty_corporate_courtcases',
|
||||
'counterparty_corporate_manda',
|
||||
'counterparty_corporate_pepdetail',
|
||||
// Entity Risk Assessment
|
||||
'entity_sanctions_circumvention',
|
||||
'entity_corruption_sector',
|
||||
'entity_corruption_country',
|
||||
'entity_corruption_relationship',
|
||||
'entity_country_risk',
|
||||
// Counterparty Risk Assessment
|
||||
'counterparty_sanctions_circumvention',
|
||||
'counterparty_corruption_sector',
|
||||
'counterparty_corruption_country',
|
||||
'counterparty_corruption_relationship',
|
||||
'counterparty_country_risk',
|
||||
]);
|
||||
});
|
||||
}
|
||||
};
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('transactions', function (Blueprint $table) {
|
||||
$table->string('counterparty_kyc_risk_level', 32)->nullable()->after('status');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('transactions', function (Blueprint $table) {
|
||||
$table->dropColumn('counterparty_kyc_risk_level');
|
||||
});
|
||||
}
|
||||
};
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('transactions', function (Blueprint $table) {
|
||||
// Entity risk breakdown (sender)
|
||||
$table->jsonb('entity_risk_breakdown')->nullable()->after('counterparty_kyc_risk_level');
|
||||
|
||||
// Counterparty risk breakdown (receiver)
|
||||
$table->jsonb('counterparty_risk_breakdown')->nullable()->after('entity_risk_breakdown');
|
||||
|
||||
// Transaction plausibility breakdown
|
||||
$table->jsonb('transaction_plausibility_breakdown')->nullable()->after('counterparty_risk_breakdown');
|
||||
|
||||
// Combined risk breakdown
|
||||
$table->jsonb('combined_risk_breakdown')->nullable()->after('transaction_plausibility_breakdown');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('transactions', function (Blueprint $table) {
|
||||
$table->dropColumn([
|
||||
'entity_risk_breakdown',
|
||||
'counterparty_risk_breakdown',
|
||||
'transaction_plausibility_breakdown',
|
||||
'combined_risk_breakdown',
|
||||
]);
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('backend_data_pool', function (Blueprint $table) {
|
||||
// Add risk fields from backend.transactions
|
||||
$table->integer('risk_score')->nullable()->after('last_modified_at');
|
||||
$table->text('risk_level')->nullable()->after('risk_score');
|
||||
$table->text('risk_details_json')->nullable()->after('risk_level');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('backend_data_pool', function (Blueprint $table) {
|
||||
$table->dropColumn(['risk_score', 'risk_level', 'risk_details_json']);
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user