From b34612aeaa7785f52e685ea77d58c2ba160010d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Fr=C3=B6hlich?= Date: Fri, 21 Nov 2025 10:32:15 +0100 Subject: [PATCH] chore: remove DaxCompanySeeder (legacy demo data) The DaxCompanySeeder created fake DAX-40 companies and transactions for development. We now use real data from the backend via the TransformDataPoolToProduction job, so this seeder is no longer needed. --- database/seeders/DatabaseSeeder.php | 3 +- database/seeders/DaxCompanySeeder.php | 153 -------------------------- 2 files changed, 2 insertions(+), 154 deletions(-) delete mode 100644 database/seeders/DaxCompanySeeder.php diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index fab013d..3f548d4 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -20,6 +20,7 @@ class DatabaseSeeder extends Seeder 'email' => 'test@example.com', ]); - $this->call(DaxCompanySeeder::class); + // Note: Company and Transaction data is now synced from the backend + // via TransformDataPoolToProduction job, not seeded manually } } diff --git a/database/seeders/DaxCompanySeeder.php b/database/seeders/DaxCompanySeeder.php deleted file mode 100644 index 9f288da..0000000 --- a/database/seeders/DaxCompanySeeder.php +++ /dev/null @@ -1,153 +0,0 @@ - 'Adidas AG', 'legal_name' => 'adidas Aktiengesellschaft', 'ticker' => 'ADS', 'sector' => 'Konsumgüter (Zyklisch)', 'headquarters' => 'Herzogenaurach', 'summary' => 'Globaler Sportartikelhersteller mit Schwerpunkt auf Schuhen, Bekleidung und digitalen Services.', 'kyc_risk_level' => 'medium'], - ['name' => 'Airbus SE', 'legal_name' => 'Airbus Societas Europaea', 'ticker' => 'AIR', 'sector' => 'Industrie', 'headquarters' => 'Leiden', 'country' => 'NL', 'summary' => 'Luft- und Raumfahrtkonzern mit zivilen, militärischen und Raumfahrtaktivitäten.', 'kyc_risk_level' => 'medium'], - ['name' => 'Allianz SE', 'legal_name' => 'Allianz Societas Europaea', 'ticker' => 'ALV', 'sector' => 'Finanzen', 'headquarters' => 'München', 'summary' => 'Versicherung und Vermögensverwaltung mit globalem Risikoportfolio.', 'kyc_risk_level' => 'low'], - ['name' => 'BASF SE', 'legal_name' => 'BASF Societas Europaea', 'ticker' => 'BAS', 'sector' => 'Grundstoffe', 'headquarters' => 'Ludwigshafen', 'summary' => 'Chemiekonzern mit Aktivitäten in Materialien, Industrial Solutions und Agricultural Solutions.', 'kyc_risk_level' => 'medium'], - ['name' => 'Bayer AG', 'legal_name' => 'Bayer Aktiengesellschaft', 'ticker' => 'BAYN', 'sector' => 'Gesundheit', 'headquarters' => 'Leverkusen', 'summary' => 'Life-Science-Unternehmen mit den Segmenten Pharmaceuticals, Consumer Health und Crop Science.', 'kyc_risk_level' => 'medium'], - ['name' => 'Beiersdorf AG', 'legal_name' => 'Beiersdorf Aktiengesellschaft', 'ticker' => 'BEI', 'sector' => 'Konsumgüter (Defensiv)', 'headquarters' => 'Hamburg', 'summary' => 'Hautpflegeexperte mit Marken wie Nivea, Eucerin und Tesa.', 'kyc_risk_level' => 'low'], - ['name' => 'BMW AG', 'legal_name' => 'Bayerische Motoren Werke Aktiengesellschaft', 'ticker' => 'BMW', 'sector' => 'Konsumgüter (Zyklisch)', 'headquarters' => 'München', 'summary' => 'Hersteller von Premiumfahrzeugen mit den Marken BMW, MINI und Rolls-Royce.', 'kyc_risk_level' => 'medium'], - ['name' => 'Brenntag SE', 'legal_name' => 'Brenntag Societas Europaea', 'ticker' => 'BNR', 'sector' => 'Industrie', 'headquarters' => 'Essen', 'summary' => 'Weltweit führender Chemie- und Inhaltsstoffdistributor mit Value-Added Services.', 'kyc_risk_level' => 'medium'], - ['name' => 'Commerzbank AG', 'legal_name' => 'Commerzbank Aktiengesellschaft', 'ticker' => 'CBK', 'sector' => 'Finanzen', 'headquarters' => 'Frankfurt am Main', 'summary' => 'Universalbank mit Fokus auf Mittelstands- und Firmenkunden.', 'kyc_risk_level' => 'high'], - ['name' => 'Daimler Truck AG', 'legal_name' => 'Daimler Truck Holding Aktiengesellschaft', 'ticker' => 'DTG', 'sector' => 'Industrie', 'headquarters' => 'Leinfelden-Echterdingen', 'summary' => 'Hersteller von schweren Lkw und Bussen mit globalem Produktionsnetzwerk.', 'kyc_risk_level' => 'medium'], - ['name' => 'Deutsche Bank AG', 'legal_name' => 'Deutsche Bank Aktiengesellschaft', 'ticker' => 'DBK', 'sector' => 'Finanzen', 'headquarters' => 'Frankfurt am Main', 'summary' => 'Globales Investment- und Firmenkundengeschäft mit Vermögensverwaltung.', 'kyc_risk_level' => 'high'], - ['name' => 'Deutsche Börse AG', 'legal_name' => 'Deutsche Börse Aktiengesellschaft', 'ticker' => 'DB1', 'sector' => 'Finanzen', 'headquarters' => 'Eschborn', 'summary' => 'Marktinfrastrukturbetreiber für Handel, Clearing und Settlement.', 'kyc_risk_level' => 'low'], - ['name' => 'Deutsche Post AG', 'legal_name' => 'Deutsche Post Aktiengesellschaft', 'ticker' => 'DPW', 'sector' => 'Industrie', 'headquarters' => 'Bonn', 'summary' => 'Logistikkonzern der Deutsche Post DHL Group mit globaler Supply-Chain-Plattform.', 'kyc_risk_level' => 'medium'], - ['name' => 'Deutsche Telekom AG', 'legal_name' => 'Deutsche Telekom Aktiengesellschaft', 'ticker' => 'DTE', 'sector' => 'Kommunikation', 'headquarters' => 'Bonn', 'summary' => 'Integrierter Telekommunikationsanbieter mit Fokus auf Europa und USA.', 'kyc_risk_level' => 'low'], - ['name' => 'E.ON SE', 'legal_name' => 'E.ON Societas Europaea', 'ticker' => 'EOAN', 'sector' => 'Versorger', 'headquarters' => 'Essen', 'summary' => 'Energieversorger mit Schwerpunkt auf Energienetzen und Kundenlösungen.', 'kyc_risk_level' => 'medium'], - ['name' => 'Fresenius SE & Co. KGaA', 'legal_name' => 'Fresenius SE & Co. KGaA', 'ticker' => 'FRE', 'sector' => 'Gesundheit', 'headquarters' => 'Bad Homburg vor der Höhe', 'summary' => 'Gesundheitskonzern mit Kliniken, Medizintechnik und Dienstleistungen.', 'kyc_risk_level' => 'medium'], - ['name' => 'Hannover Rück SE', 'legal_name' => 'Hannover Rück Societas Europaea', 'ticker' => 'HNR1', 'sector' => 'Finanzen', 'headquarters' => 'Hannover', 'summary' => 'Rückversicherer mit Sparten in Schaden/Unfall und Leben/Kranken.', 'kyc_risk_level' => 'low'], - ['name' => 'Heidelberg Materials AG', 'legal_name' => 'Heidelberg Materials Aktiengesellschaft', 'ticker' => 'HEI', 'sector' => 'Grundstoffe', 'headquarters' => 'Heidelberg', 'summary' => 'Baustoffhersteller mit Schwerpunkt auf Zement, Zuschlagstoffen und Transportbeton.', 'kyc_risk_level' => 'medium'], - ['name' => 'Henkel AG & Co. KGaA', 'legal_name' => 'Henkel AG & Co. Kommanditgesellschaft auf Aktien', 'ticker' => 'HEN3', 'sector' => 'Konsumgüter (Defensiv)', 'headquarters' => 'Düsseldorf', 'summary' => 'Hersteller von Konsumgütern und Klebstofftechnologien mit globaler Präsenz.', 'kyc_risk_level' => 'low'], - ['name' => 'Infineon Technologies AG', 'legal_name' => 'Infineon Technologies Aktiengesellschaft', 'ticker' => 'IFX', 'sector' => 'Informationstechnologie', 'headquarters' => 'Neubiberg', 'summary' => 'Halbleiterhersteller für Mobilität, Energieeffizienz und Sicherheit.', 'kyc_risk_level' => 'medium'], - ['name' => 'Mercedes-Benz Group AG', 'legal_name' => 'Mercedes-Benz Group Aktiengesellschaft', 'ticker' => 'MBG', 'sector' => 'Konsumgüter (Zyklisch)', 'headquarters' => 'Stuttgart', 'summary' => 'Hersteller von Premium-Pkw und Vans mit starkem E-Mobility-Fokus.', 'kyc_risk_level' => 'medium'], - ['name' => 'Porsche SE', 'legal_name' => 'Porsche Automobil Holding Societas Europaea', 'ticker' => 'PAH3', 'sector' => 'Konsumgüter (Zyklisch)', 'headquarters' => 'Stuttgart', 'summary' => 'Strategische Beteiligungsgesellschaft mit Schwerpunkt Automobil- und Mobilitätssektor.', 'kyc_risk_level' => 'medium'], - ['name' => 'PUMA SE', 'legal_name' => 'PUMA Societas Europaea', 'ticker' => 'PUM', 'sector' => 'Konsumgüter (Zyklisch)', 'headquarters' => 'Herzogenaurach', 'summary' => 'Sportartikelunternehmen mit Performance- und Lifestyle-Sortiment.', 'kyc_risk_level' => 'medium'], - ['name' => 'Qiagen N.V.', 'legal_name' => 'Qiagen Naamloze Vennootschap', 'ticker' => 'QIA', 'sector' => 'Gesundheit', 'headquarters' => 'Venlo', 'country' => 'NL', 'summary' => 'Spezialist für molekulare Diagnostik und Probenaufbereitung.', 'kyc_risk_level' => 'medium'], - ['name' => 'RWE AG', 'legal_name' => 'RWE Aktiengesellschaft', 'ticker' => 'RWE', 'sector' => 'Versorger', 'headquarters' => 'Essen', 'summary' => 'Energieunternehmen in Transformation hin zu erneuerbaren Energien.', 'kyc_risk_level' => 'medium'], - ['name' => 'SAP SE', 'legal_name' => 'SAP Societas Europaea', 'ticker' => 'SAP', 'sector' => 'Informationstechnologie', 'headquarters' => 'Walldorf', 'summary' => 'Anbieter von Unternehmenssoftware für ERP und Cloud-Lösungen.', 'kyc_risk_level' => 'low'], - ['name' => 'Siemens AG', 'legal_name' => 'Siemens Aktiengesellschaft', 'ticker' => 'SIE', 'sector' => 'Industrie', 'headquarters' => 'München', 'summary' => 'Technologiekonzern mit Fokus auf Automatisierung, Digitalisierung und Infrastruktur.', 'kyc_risk_level' => 'low'], - ['name' => 'Siemens Healthineers AG', 'legal_name' => 'Siemens Healthineers Aktiengesellschaft', 'ticker' => 'SHL', 'sector' => 'Gesundheit', 'headquarters' => 'Erlangen', 'summary' => 'Medizintechnikanbieter für Bildgebung, Diagnostik und Therapie.', 'kyc_risk_level' => 'medium'], - ['name' => 'Symrise AG', 'legal_name' => 'Symrise Aktiengesellschaft', 'ticker' => 'SY1', 'sector' => 'Grundstoffe', 'headquarters' => 'Holzminden', 'summary' => 'Hersteller von Duft-, Geschmacks- und Nährstofflösungen.', 'kyc_risk_level' => 'medium'], - ['name' => 'Volkswagen AG', 'legal_name' => 'Volkswagen Aktiengesellschaft', 'ticker' => 'VOW', 'sector' => 'Konsumgüter (Zyklisch)', 'headquarters' => 'Wolfsburg', 'summary' => 'Automobilkonzern mit Markenportfolio von Volumen bis Luxus.', 'kyc_risk_level' => 'high'], - ]; - - $channels = [ - 'SEPA-Überweisung', - 'Auslandsüberweisung', - 'SWIFT MT103', - 'Grenzüberschreitendes ACH', - 'Hochwertiges Clearing', - 'Handelsfinanzierungs-Abwicklung', - ]; - - $flaggedReasons = [ - 'Gegenpartei erscheint auf konsolidierter Sanktionsliste.', - 'Transaktionsbetrag liegt 300 % über dem historischen Durchschnitt.', - 'Unüblicher Zahlungskorridor für das Branchensegment.', - 'Mehrere gestapelte Überweisungen im Monitoring erkannt.', - 'Begünstigte Bank sitzt in Hochrisiko-Jurisdiktion.', - 'Schnelle Mittelbewegungen über verschachtelte Konten.', - 'Negativmeldung zur Geschäftsleitung der Gegenpartei gefunden.', - ]; - - $analysts = ['AML-Radar', 'Sanktionswächter', 'Verhaltensanalyse', 'Netzwerk-Intelligence', 'Adverse-Media-Scan']; - - $signalCatalog = [ - ['type' => 'Sanktionsliste', 'value' => 'Treffer EU-Konsolidierte Liste'], - ['type' => 'PEP-Screening', 'value' => 'Politisch exponierte Person, Stufe 2'], - ['type' => 'Geo-Risiko', 'value' => 'Hochrisikoland: TR'], - ['type' => 'Transaktionsdichte', 'value' => '6 verknüpfte Zahlungen binnen 24h'], - ['type' => 'Strukturierung', 'value' => 'Hinweise auf Smurfing-Muster'], - ['type' => 'Negativnachrichten', 'value' => 'Aktuelle Betrugsermittlungen gemeldet'], - ['type' => 'Wirtschaftlich Berechtigter', 'value' => 'Intransparente Eigentümerstruktur'], - ['type' => 'Branchenabweichung', 'value' => 'Handelswert 210 % über Peergroup'], - ]; - - $statusPool = [ - Transaction::STATUS_TRUE_POSITIVE, - Transaction::STATUS_FALSE_POSITIVE, - Transaction::STATUS_FALSE_POSITIVE, - Transaction::STATUS_CLEARED, - Transaction::STATUS_CLEARED, - Transaction::STATUS_CLEARED, - ]; - - $faker = fake('en_GB'); - $sequence = 1; - - DB::transaction(function () use ( - $companies, - $channels, - $flaggedReasons, - $analysts, - $signalCatalog, - $statusPool, - $faker, - &$sequence - ) { - Transaction::query()->delete(); - Company::query()->delete(); - - foreach ($companies as $companyData) { - $company = Company::create(array_merge( - [ - 'country' => $companyData['country'] ?? 'DE', - ], - $companyData - )); - - $transactionTotal = random_int(4, 7); - - for ($i = 0; $i < $transactionTotal; $i++) { - $status = Arr::random($statusPool); - $riskScore = match ($status) { - Transaction::STATUS_TRUE_POSITIVE => random_int(82, 95), - Transaction::STATUS_FALSE_POSITIVE => random_int(48, 65), - default => random_int(12, 28), - }; - - $executedAt = Carbon::now() - ->subDays(random_int(1, 45)) - ->setTime(random_int(7, 19), random_int(0, 59), random_int(0, 59)); - - $company->transactions()->create([ - 'reference' => 'TRX-'.str_pad((string) $sequence++, 6, '0', STR_PAD_LEFT), - 'amount' => $faker->randomFloat(2, 8_500, 4_500_000), - 'currency' => Arr::random(['EUR', 'USD', 'GBP']), - 'counterparty' => $faker->company(), - 'counterparty_country' => Arr::random(['DE', 'DE', 'CH', 'AT', 'NL', 'GB', 'LU', 'SG']), - 'channel' => Arr::random($channels), - 'executed_at' => $executedAt, - 'risk_score' => $riskScore, - 'status' => $status, - 'requires_review' => true, - 'flagged_by' => Arr::random($analysts), - 'flagged_reason' => Arr::random($flaggedReasons), - 'signals' => array_values(Arr::random( - $signalCatalog, - random_int(1, min(3, count($signalCatalog))) - )), - ]); - } - } - }); - } -}