Skip to content

Conversation

@ManukMinasyan
Copy link
Contributor

No description provided.

add comprehensive data import system for crm migration:
- import center page with quick import, history, and migration wizard tabs
- excel to csv conversion via phpspreadsheet
- importers for companies, people, opportunities, tasks, and notes
- duplicate handling strategy with user choice (skip/update/create)
- custom fields integration via weakmap storage
- migration batch tracking for multi-entity imports
- dependency enforcement (companies before people, etc)
- failed rows download for error recovery
- redesign entity cards with cleaner hover states and visual hierarchy
- simplify import tips section with minimal bullet styling
- improve step progress indicator with connecting lines
- refine entity selection cards with subtle borders and transitions
- add collapsible progress section in migration wizard step 2
- update completion step with success icon and cleaner summary
- add pointer-events-none to icon containers to prevent click issues
- conditionally show logo only on guest pages (login/register/forgot)
- fix svg overflow in logo container causing invisible clickable area
- change sidebar nav overflow from visible to hidden
- keep brandName for page title display
- use empty logo view for authenticated pages
- show full logo only on guest pages
- only mark as stuck if processing actually started then stopped
- show pending when processed_rows is 0 regardless of total_rows
- update test to expect pending for old unprocessed imports
remove MigrationBatch model, factory, migration and migration_batch_id column
as they provided no user-facing value - batch data was tracked but never displayed

clean up MigrationWizard by removing unused methods (recordImportComplete,
getRecentImports) and batch-related code while preserving wizard functionality

simplify ImportCenter by removing dead getImportAction and getHeaderActions
methods, and simplify hasImportJobFailed from 4 complex queries to 1

remove 9 batch-related tests that no longer apply, update remaining tests
- extract HasImportEntities trait for shared entity configuration
- fix PeopleImporter to respect duplicate handling strategy
- remove unused CreationSource import from BaseImporter
- delete unused column_mappings/duplicate_strategy migration
- simplify MigrationWizard with collect() helpers
- remove redundant getEntityTypes() alias method
tests used base package models lacking HasUlids trait after ulid
migration, causing NOT NULL constraint failures on id columns.
also fixed entity_type queries to use morph aliases instead of
class names to match Relation::enforceMorphMap configuration.
Copilot AI review requested due to automatic review settings December 24, 2025 14:38
Copy link

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

This is a major version upgrade ("V3") that introduces several significant changes:

  • ULID Migration: Converts database from auto-increment bigint IDs to ULIDs (26-character string identifiers)
  • Import Wizard Module: Adds comprehensive CSV/Excel import functionality with duplicate handling, team isolation, and batch processing
  • Custom Fields Enhancement: Updates to support email field types and multi-value fields
  • Test Infrastructure: Extensive test coverage for imports, migrations, and ULID functionality
  • Dependency Updates: Multiple package updates including Laravel Framework, Livewire, Horizon, and addition of PHPOffice/PhpSpreadsheet

Reviewed changes

Copilot reviewed 126 out of 132 changed files in this pull request and generated no comments.

Show a summary per file
File Description
database/migrations/2025_12_20_000000_migrate_to_ulid.php Comprehensive ULID migration handling both MySQL/PostgreSQL and SQLite with two-phase approach
database/migrations/2025_12_10_191207_update_people_emails_field_type_to_email.php Updates email field type from tags-input to email
database/migrations/0001_01_01_000000_create_users_table.php Updates users table to use ULID primary keys
database/migrations/2024_08_23_110718_create_teams_table.php Updates teams table to use ULID
database/migrations/2024_08_24_133803_create_companies_table.php Updates companies table to use ULID
tests/Feature/Filament/App/Imports/*.php New comprehensive import test suite
tests/Feature/Services/Import/CompanyMatcherTest.php Tests for company matching service
tests/Feature/Migrations/UlidMigrationTest.php Tests for ULID migration functionality
tests/fixtures/imports/*.xlsx, *.csv Test fixture files for import testing
composer.json Adds doctrine/dbal, phpoffice/phpspreadsheet, custom-fields dev dependency
config/horizon.php Adds imports queue configuration
config/custom-fields.php Updates feature flags for custom fields
app/Models/TeamInvitation.php Adds HasUlids trait
tests/Feature/Teams/CreateTeamTest.php Updates test to check existence vs latest()
tests/Feature/Auth/AuthenticationTest.php Fixes hardcoded team ID in test
tests/Feature/Commands/InstallCommandTest.php Improves test isolation with temp env files
resources/views/filament/app/logo.blade.php Fixes logo sizing and overflow
resources/css/filament/app/theme.css Updates sidebar overflow behavior
phpstan-baseline.neon Updates type hints for ULID
lang/vendor/custom-fields/en/custom-fields.php Changes nav group name
tests/ArchTest.php Adds ImportPage to architecture test exclusions
bootstrap/providers.php Registers ImportWizardServiceProvider
composer.lock Multiple dependency updates

- Update flowforge dependency to v3.x (DecimalPosition service)
- Add migration to convert order_column from VARCHAR to DECIMAL(20,10)
- Regenerate all task and opportunity positions using DecimalPosition
- Update board page comments to reflect v3 DecimalPosition usage
- Keep moveCard() overrides for custom field column handling
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