Skip to content

Refactor/validate column job improvements#111

Merged
ManukMinasyan merged 10 commits into3.xfrom
refactor/validate-column-job-improvements
Jan 29, 2026
Merged

Refactor/validate column job improvements#111
ManukMinasyan merged 10 commits into3.xfrom
refactor/validate-column-job-improvements

Conversation

@ManukMinasyan
Copy link
Copy Markdown
Contributor

No description provided.

- 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
Copilot AI review requested due to automatic review settings January 27, 2026 14:26
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ValidateColumnJob to 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.

@relaticle relaticle deleted a comment from Copilot AI Jan 28, 2026
- 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
@ManukMinasyan ManukMinasyan merged commit e47da86 into 3.x Jan 29, 2026
0 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants