chore: major project cleanup and restructuring

## Dokumentation
- Entfernt AGENTS.md (redundant zu CLAUDE.md)
- Verschoben: 3 Dokumentationen von root → docs/
- Gelöscht: 8 historische Migrations-Pläne aus docs/archive/
- Entfernt: misc/ Ordner komplett (43 Dateien)

## Struktur
- Erstellt: database/queries/ für SQL Test-Queries (4 Dateien)
- Erstellt: database/schemas/ für Schema-Dokumentation (17 Dateien)
  - output_keys_mapping/ (8 CSV-Mappings)
  - migration-diagrams/ (4 Diagramme)

## Code-Qualität
- Formatiert: 7 Style-Issues in 74 Dateien mit Laravel Pint
- Gefixed: Migration für PostgreSQL/SQLite Kompatibilität
- Gefixed: 2 fehlgeschlagene Tests (CSRF + Text-Assertion)

## Tests
- Alle 73 Tests bestehen jetzt (100% Success Rate)
- AuthenticationTest: CSRF-Token Fix für Logout-Test
- CompanySearchTest: Text-Assertion aktualisiert

## Ergebnis
- Root ist sauber (nur CLAUDE.md)
- Dokumentation strukturiert in docs/
- Database-Dateien organisiert in database/
- Code entspricht Style-Guide
- Alle Tests bestehen
This commit is contained in:
cbazza committed 2025-11-21 10:00:32 +01:00
1 parent 3a54f6cba3
commit 1cb38d7080
46 files changed
+112 -5367

No files matched your search

@@ -12,37 +12,64 @@ return new class extends Migration
*/
public function up(): void
{
// Use raw SQL with CASCADE to drop columns and dependent views
DB::statement('ALTER TABLE transactions
DROP COLUMN IF EXISTS registry_company_number CASCADE,
DROP COLUMN IF EXISTS registry_source CASCADE,
DROP COLUMN IF EXISTS registry_match_score CASCADE,
DROP COLUMN IF EXISTS registry_data CASCADE,
DROP COLUMN IF EXISTS registry_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS genesis_context CASCADE,
DROP COLUMN IF EXISTS genesis_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS govdata_data CASCADE,
DROP COLUMN IF EXISTS govdata_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS bundesanzeiger_data CASCADE,
DROP COLUMN IF EXISTS bundesanzeiger_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS insolvency_data CASCADE,
DROP COLUMN IF EXISTS insolvency_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS rss_alerts CASCADE,
DROP COLUMN IF EXISTS rss_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS sanctions_data CASCADE,
DROP COLUMN IF EXISTS sanctions_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS pep_data CASCADE,
DROP COLUMN IF EXISTS pep_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS gleif_lei CASCADE,
DROP COLUMN IF EXISTS gleif_data CASCADE,
DROP COLUMN IF EXISTS gleif_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS eu_sanctions_data CASCADE,
DROP COLUMN IF EXISTS eu_sanctions_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS handelsregister_data CASCADE,
DROP COLUMN IF EXISTS handelsregister_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS handelsregister_status CASCADE,
DROP COLUMN IF EXISTS handelsregister_entity_id CASCADE
');
// Check if we're using PostgreSQL (production) or SQLite (testing)
$driver = Schema::getConnection()->getDriverName();
if ($driver === 'pgsql') {
// PostgreSQL: Use raw SQL with CASCADE to drop columns and dependent views
DB::statement('ALTER TABLE transactions
DROP COLUMN IF EXISTS registry_company_number CASCADE,
DROP COLUMN IF EXISTS registry_source CASCADE,
DROP COLUMN IF EXISTS registry_match_score CASCADE,
DROP COLUMN IF EXISTS registry_data CASCADE,
DROP COLUMN IF EXISTS registry_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS genesis_context CASCADE,
DROP COLUMN IF EXISTS genesis_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS govdata_data CASCADE,
DROP COLUMN IF EXISTS govdata_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS bundesanzeiger_data CASCADE,
DROP COLUMN IF EXISTS bundesanzeiger_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS insolvency_data CASCADE,
DROP COLUMN IF EXISTS insolvency_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS rss_alerts CASCADE,
DROP COLUMN IF EXISTS rss_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS sanctions_data CASCADE,
DROP COLUMN IF EXISTS sanctions_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS pep_data CASCADE,
DROP COLUMN IF EXISTS pep_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS gleif_lei CASCADE,
DROP COLUMN IF EXISTS gleif_data CASCADE,
DROP COLUMN IF EXISTS gleif_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS eu_sanctions_data CASCADE,
DROP COLUMN IF EXISTS eu_sanctions_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS handelsregister_data CASCADE,
DROP COLUMN IF EXISTS handelsregister_last_refreshed_at CASCADE,
DROP COLUMN IF EXISTS handelsregister_status CASCADE,
DROP COLUMN IF EXISTS handelsregister_entity_id CASCADE
');
} else {
// SQLite: Use Schema Builder to drop columns (if they exist)
Schema::table('transactions', function (Blueprint $table) {
$columns = [
'registry_company_number', 'registry_source', 'registry_match_score',
'registry_data', 'registry_last_refreshed_at', 'genesis_context',
'genesis_last_refreshed_at', 'govdata_data', 'govdata_last_refreshed_at',
'bundesanzeiger_data', 'bundesanzeiger_last_refreshed_at', 'insolvency_data',
'insolvency_last_refreshed_at', 'rss_alerts', 'rss_last_refreshed_at',
'sanctions_data', 'sanctions_last_refreshed_at', 'pep_data',
'pep_last_refreshed_at', 'gleif_lei', 'gleif_data',
'gleif_last_refreshed_at', 'eu_sanctions_data', 'eu_sanctions_last_refreshed_at',
'handelsregister_data', 'handelsregister_last_refreshed_at',
'handelsregister_status', 'handelsregister_entity_id',
];
foreach ($columns as $column) {
if (Schema::hasColumn('transactions', $column)) {
$table->dropColumn($column);
}
}
});
}
}
/**