Refactor/validate column job improvements#111
Merged
ManukMinasyan merged 10 commits into3.xfrom Jan 29, 2026
Merged
Conversation
- Extract logic into focused private methods for readability - Wrap batch updates in transaction for atomicity - Use try/finally for guaranteed temp table cleanup - Skip re-validation for corrected date fields (ISO always valid) - Add WHERE clause to only update rows without corrections
Dead code - validateColumnAsync is used instead for async validation
Cache provides no benefit for per-job validator instances
There was a problem hiding this comment.
Pull request overview
Refactors the import column validation flow, moving more of the “format-change / corrected-values” handling into ValidateColumnJob, while simplifying ImportValueValidator internals.
Changes:
- Updated
ValidateColumnJobto clear validation for corrected date/datetime rows and to validate only uncorrected raw values. - Removed
ImportStore::revalidateColumn()(revalidation logic now appears to be handled via background validation jobs instead). - Removed multiple import-related unit tests (no replacement tests added in this PR).
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/Unit/Services/Import/ValueValidationServiceTest.php | Removes unit tests for value validation service behavior. |
| tests/Unit/Services/Import/TimestampFormatTest.php | Removes unit tests for timestamp parsing/formatting. |
| tests/Unit/Services/Import/DateValidatorTest.php | Removes unit tests for date validation and column validation counts. |
| tests/Unit/Services/Import/DateFormatTest.php | Removes unit tests for date format parsing/matching/ambiguity logic. |
| tests/Unit/Services/Import/DataTypeInferencerTest.php | Removes unit tests for type inference and date-format detection. |
| tests/Unit/Services/Import/ColumnMatcherTest.php | Removes unit tests for header normalization/matching logic. |
| app-modules/ImportWizard/src/Support/ImportValueValidator.php | Removes in-memory caching for choice options (while leaving preload/caching-oriented API/docs). |
| app-modules/ImportWizard/src/Store/ImportStore.php | Removes revalidateColumn() implementation. |
| app-modules/ImportWizard/src/Jobs/ValidateColumnJob.php | Refactors validation job to exclude corrected values and clear validation for corrected date/datetime rows. |
- rename RelationshipField to EntityLink for clearer semantics - rename ImportValueValidator to FieldFormatValidator - add EntityLinkResolver for batch lookups with caching - add EntityLinkValidator for import value validation - add storage strategies for different link types (FK, morph, custom field) - update all importers to use entityLinks() instead of relationships() - update ColumnData to use entityLink instead of relationship
Merge fields and entity links into a single sorted collection in field-select.blade.php. Items are now displayed in their correct sortOrder rather than as separate sections. Changes: - Add sortOrder property to EntityLink and ImportField DTOs - Add icon property to ImportField for consistent UI display - Merge and sort fields/entityLinks in Blade template - Order custom fields by sort_order when fetching from database - Add icons to all standard importer fields
integrate filament's x-float directive for main dropdown panel to get automatic flip behavior and consistent positioning with other dropdowns
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.