legacy: --since-Delta für legacy:import + Importer setzen Timestamps wieder korrekt

--since=<Zeitpunkt> schränkt den Quell-Scan auf Legacy-Zeilen ein, deren
created_at ODER updated_at im Fenster liegt (users/companies/contacts/
press-releases; Kategorien und link-associations bleiben ungefiltert).
Kombiniert mit --force werden geänderte Bestandszeilen aktualisiert —
damit dauert ein Tages-Delta Sekunden statt eines Volldurchlaufs über
150k+ Zeilen.

Dazu Bugfix, der den Delta erst rund macht: User-/Company-/Contact-
Importer übergaben created_at/updated_at innerhalb von updateOrCreate —
die Felder sind nicht fillable und wurden stillschweigend verworfen
(Live-Befund: NULL-Timestamps, bisher nur durch legacy:fix-timestamps
geheilt). Jetzt explizit per forceFill wie im PressReleaseImporter.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-07-20 13:03:07 +00:00
parent 263f030a6e
commit 4668cfc9fe
8 changed files with 136 additions and 11 deletions

View file

@ -127,6 +127,11 @@ test('legacy user import creates linked profile data from sf guard user profile'
expect($user->profile?->tax_exempt)->toBeTrue();
expect($user->profile?->tax_exempt_reason)->toBe('Reverse Charge');
expect($user->profile?->disable_footer_code)->toBeTrue();
// Timestamps kommen aus dem Legacy-System, nicht vom Importzeitpunkt
// (created_at/updated_at sind nicht fillable → forceFill im Importer).
expect($user->created_at?->format('Y-m-d H:i:s'))->toBe('2020-01-01 00:00:00');
expect($user->updated_at?->format('Y-m-d H:i:s'))->toBe('2020-01-02 00:00:00');
});
/**