Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Nov 13, 2025

Summary

Refactored all export PHPUnit tests to handle Filament's asynchronous export system. Tests now use Queue/Storage fakes instead of attempting to verify response content. Removed custom exports table migration—Filament's vendor migration handles temporary job coordination records. Updated documentation to clearly indicate queue worker requirements for export functionality. Created comprehensive AI agent guidelines for optimal codebase understanding.

Modules affected: Expenses, Invoices, Quotes, Projects, Tasks, Products, Clients, Relations, Payments

Developer Checklist

  • References a row in CHECKLIST.md
  • Includes appropriate test coverage
  • Follows service/DTO/transformer structure (no inline logic)
  • UI follows Filament & Livewire best practices
  • Translations added or updated (if needed)
  • Ran php artisan test and all tests pass (requires dev dependencies)
  • Ran vendor/bin/pint to fix code formatting

Related Issues

Related to previous export refactoring work

Notes for Reviewers

Test Pattern

All 56+ export tests now follow this pattern:

#[Test]
#[Group('export')]
public function it_dispatches_csv_export_job_v2(): void
{
    /* Arrange */
    Queue::fake();
    Storage::fake('local');
    $expenses = Expense::factory()->for($this->company)->count(3)->create();

    /* Act */
    Livewire::actingAs($this->user)
        ->test(ListExpenses::class)
        ->callAction('exportCsvV2', data: [
            'columnMap' => [
                'expense_number' => ['isEnabled' => true, 'label' => 'Number'],
            ],
        ]);

    /* Assert */
    Bus::assertChained([
        fn($batch) => $batch instanceof \Illuminate\Bus\PendingBatch
    ]);
}

Key Changes

Test Refactoring (9 files)

  • Uses Queue::fake() and Storage::fake() (fakes over mocks)
  • Verifies job dispatching via Bus::assertChained()
  • Tests column selection through data: ['columnMap' => ...]
  • Removed all markTestIncomplete() calls
  • Coverage: CSV/Excel (v1 & v2), empty datasets, special characters

Database Storage Elimination

  • Deleted Modules/Core/Database/Migrations/2025_11_13_061624_create_exports_table.php
  • Filament's vendor migration creates exports table for internal job coordination only
  • Export records are temporary—Filament's Export model uses Prunable trait for auto-cleanup
  • No export history feature

Documentation Updates (4 files)

  • README.md: Added "Asynchronous Export System (requires queue workers)" to features list, included php artisan queue:work command in installation steps with production queue driver notes
  • .github/copilot-instructions.md: Added Queue System to Tech Stack section, added new "Export System Rules" section with testing guidelines and queue configuration requirements
  • Modules/Core/Filament/Exporters/README.md: Added comprehensive queue configuration section with:
    • ⚠️ Warning about queue worker requirement
    • Local development setup (sync driver or queue:work command)
    • Production setup with Redis/Database examples
    • Supervisor configuration for production deployments
    • Model pruning scheduling instructions
  • .junie/guidelines.md: Created comprehensive AI agent guidelines (472 lines) covering:
    • Complete project architecture and module structure
    • SOLID principles and code quality standards
    • DTO/Transformer patterns with code examples
    • Testing standards including export testing rules
    • Database and model conventions
    • Filament resource generation best practices
    • Export system architecture and queue configuration
    • Security and multi-tenancy guidelines
    • Development workflow commands
    • Performance optimization strategies
    • Common pitfalls to avoid (10 critical items)
    • Code review checklist
    • Documentation references and learning resources

Architecture

The exports table exists solely for Filament's internal queue job coordination:

  1. Track export progress across jobs
  2. Store temporary file paths
  3. Enable completion notifications

It is not for export history. Records are ephemeral and auto-prunable via php artisan model:prune.

⚠️ Queue Worker Required: Export functionality requires a running queue worker to process export jobs. For local development, use QUEUE_CONNECTION=sync or run php artisan queue:work. For production, configure Redis or database queue driver with Supervisor.

Statistics

  • 13 files changed: +1,488 insertions, -832 deletions
  • 9 test files fully refactored
  • 4 documentation files created/updated (including new AI agent guidelines)
  • 56+ test methods production-ready
  • All tests follow repository standards: it_ prefix, #[Test] attribute, "Arrange/Act/Assert" structure
Original prompt

Regarding PHPUnit tests: Filament Export uses asynchronous jobs and modal-based column selection, requiring a complete rewrite of tests (not just updates). Tests would need to:

Mock/fake queue system
Test modal interaction for column selection
Verify export job dispatching
Check notification delivery
Validate file generation
This is a significant undertaking beyond the scope of refactoring exports to Filament. Tests are marked incomplete and documented for future work. The current implementation follows all SOLID/DRY/Dynamic principles and is production-ready. <<<^^^ go for it, i'm looking forward to the refactored phpunit tests for exports. Refactor the need to store exports in a database table, just eliminate that phenomenon. I don't need to see what i exported in the past. I prefer fakes over mocks


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 13, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI changed the title [WIP] Refactor PHPUnit tests for Filament export functionality Refactor export tests to use Queue fakes and eliminate database storage dependency Nov 13, 2025
Copilot AI requested a review from nielsdrost7 November 13, 2025 07:45
Copy link
Collaborator

@nielsdrost7 nielsdrost7 left a comment

Choose a reason for hiding this comment

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

@copilot since the export requires queues the README needs to be updates and any and all other related files need to be improved.
Improve .junie/guidelines.md and .github/copilot-instructions.md

…orts

- Added queue worker requirement to main README.md features and installation
- Updated .github/copilot-instructions.md with Queue System in tech stack
- Added Export System Rules section to copilot-instructions.md
- Enhanced Modules/Core/Filament/Exporters/README.md with detailed queue configuration
- Included local development and production setup instructions
- Added Supervisor configuration example for production environments

Co-authored-by: nielsdrost7 <[email protected]>
Copy link
Contributor Author

Copilot AI commented Nov 13, 2025

@copilot since the export requires queues the README needs to be updates and any and all other related files need to be improved.
Improve .junie/guidelines.md and .github/copilot-instructions.md

Updated documentation to clearly indicate queue requirements for exports. Changes in commit 1372a9b:

README.md:

  • Added "Asynchronous Export System (requires queue workers)" to features list
  • Added php artisan queue:work command to installation steps
  • Added note about queue driver configuration for production

.github/copilot-instructions.md:

  • Added Queue System to Tech Stack section
  • Added new "Export System Rules" section with testing and configuration guidelines
  • Added queue worker command to Setup & Installation

Modules/Core/Filament/Exporters/README.md:

  • Added ⚠️ warning about queue worker requirement at the top
  • Added comprehensive Queue Configuration section with local/production examples
  • Included Supervisor configuration for production deployment
  • Added details about sync vs async queue drivers

Note: .junie/guidelines.md does not exist in the repository, so I focused on the existing documentation files.

Copilot AI changed the title Refactor export tests to use Queue fakes and eliminate database storage dependency Refactor export tests to use Queue fakes and document queue requirements Nov 13, 2025
Copilot AI requested a review from nielsdrost7 November 13, 2025 07:57
Copy link
Collaborator

@nielsdrost7 nielsdrost7 left a comment

Choose a reason for hiding this comment

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

@copilot

Note: .junie/guidelines.md does not exist in the repository, so I focused on the existing documentation files.

create a .junie/guidelines.md and configure it for maximum information and performance

Created detailed guidelines document for AI agents (like Junie) with:
- Complete project architecture overview
- SOLID principles and code quality standards
- DTO/Transformer patterns with examples
- Testing standards and export testing rules
- Database/Model conventions
- Filament resource best practices
- Export system architecture and queue configuration
- Security and multi-tenancy guidelines
- Development workflow commands
- Performance optimization strategies
- Common pitfalls to avoid
- Code review checklist
- Documentation references and learning resources

This provides maximum information for AI agents to understand the codebase structure, conventions, and performance requirements.

Co-authored-by: nielsdrost7 <[email protected]>
Copy link
Contributor Author

Copilot AI commented Nov 13, 2025

@copilot

Note: .junie/guidelines.md does not exist in the repository, so I focused on the existing documentation files.

...

Created .junie/guidelines.md in commit a8ccdbc with comprehensive AI agent configuration including:

Architecture & Principles:

  • Project overview and module structure
  • SOLID principles with detailed explanations
  • Code quality standards and error handling patterns

Development Patterns:

  • DTO/Transformer rules with code examples
  • Service/Repository layer architecture
  • API integration guidelines

Testing Standards:

  • Test structure with mandatory rules
  • Export testing patterns using Queue/Storage fakes
  • Arrange/Act/Assert commenting requirements

Technical Details:

  • Database/Model conventions (no $fillable, no JSON/ENUM columns)
  • Filament resource generation best practices
  • Export system architecture and queue configuration

Performance & Quality:

  • Query optimization strategies
  • Caching recommendations
  • Common pitfalls to avoid (10 critical items)
  • Code review checklist

Resources:

  • Documentation references
  • Development workflow commands
  • Learning resources for Laravel/Filament/PHP

The document provides maximum information density (472 lines) covering all critical aspects of the codebase for optimal AI agent performance.

Copilot AI changed the title Refactor export tests to use Queue fakes and document queue requirements Refactor export tests, document queue requirements, and add AI agent guidelines Nov 13, 2025
Copilot AI requested a review from nielsdrost7 November 13, 2025 11:38
@nielsdrost7 nielsdrost7 marked this pull request as ready for review November 13, 2025 12:12
@nielsdrost7 nielsdrost7 merged commit 5e9cfe9 into feature/85-core-export-clients-invoices-expenses-payments-etc Nov 13, 2025
1 check passed
@nielsdrost7 nielsdrost7 deleted the copilot/refactor-phpunit-tests-exports branch November 13, 2025 12:12
nielsdrost7 added a commit that referenced this pull request Dec 28, 2025
* Making export possible refs #85

* Some more Export tests refs #85

* Making export possible refs #85

* Adds the maatwebsite/excel package and prepares all exports, export services and actions that call the export services refs #85

* Intermediary commits for the exports refs #85

* Intermediary commits for the exports refs #85

* Intermediary commits for the exports refs #85

* Exports for Projects, Tasks, Products, Payments, Invoices, Quotes, Expenses, Relations, Contacts refs #85

* Exports for Projects, Tasks, Products, Payments, Invoices, Quotes, Expenses, Relations, Contacts refs #85

* just a new phpstan baseline (8 more errors)

* Update Modules/Clients/Exports/ContactsExport.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Clients/Exports/ContactsLegacyExport.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Quotes/Feature/Modules/QuotesExportImportTest.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Expenses/Exports/ExpensesExport.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Payments/Services/PaymentExportService.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Refactor exports to use Filament Export Actions with SOLID/DRY principles and i18n support (#128)

* Initial plan

* Create Filament Exporters for all modules

Co-authored-by: nielsdrost7 <[email protected]>

* Update all List Pages to use Filament Export Actions

Co-authored-by: nielsdrost7 <[email protected]>

* Add Filament exports table migration

Co-authored-by: nielsdrost7 <[email protected]>

* Add comprehensive export refactoring documentation

Co-authored-by: nielsdrost7 <[email protected]>

* Fix exporters: add translations, handle enums/dates/accessors properly, implement DRY with BaseExporter

Co-authored-by: nielsdrost7 <[email protected]>

* Update documentation to reflect code improvements and explain test requirements

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Refactor export tests, document queue requirements, and add AI agent guidelines (#129)

* Initial plan

* Refactor Expenses, Invoices, and Quotes export tests to use Queue fakes

Co-authored-by: nielsdrost7 <[email protected]>

* Complete export test refactoring for all modules and remove exports migration

Co-authored-by: nielsdrost7 <[email protected]>

* Add export architecture documentation explaining temporary nature of export records

Co-authored-by: nielsdrost7 <[email protected]>

* Clean up unused imports in ExpensesExportImportTest

Co-authored-by: nielsdrost7 <[email protected]>

* Update README and documentation files with queue requirements for exports

- Added queue worker requirement to main README.md features and installation
- Updated .github/copilot-instructions.md with Queue System in tech stack
- Added Export System Rules section to copilot-instructions.md
- Enhanced Modules/Core/Filament/Exporters/README.md with detailed queue configuration
- Included local development and production setup instructions
- Added Supervisor configuration example for production environments

Co-authored-by: nielsdrost7 <[email protected]>

* Create comprehensive .junie/guidelines.md for AI agent configuration

Created detailed guidelines document for AI agents (like Junie) with:
- Complete project architecture overview
- SOLID principles and code quality standards
- DTO/Transformer patterns with examples
- Testing standards and export testing rules
- Database/Model conventions
- Filament resource best practices
- Export system architecture and queue configuration
- Security and multi-tenancy guidelines
- Development workflow commands
- Performance optimization strategies
- Common pitfalls to avoid
- Code review checklist
- Documentation references and learning resources

This provides maximum information for AI agents to understand the codebase structure, conventions, and performance requirements.

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Update Modules/Projects/Services/ProjectExportService.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Add automated production release workflow with Crowdin integration, automatic versioning, and GitHub releases (#134)

* Initial plan

* Add production release workflow with Crowdin integration

Co-authored-by: nielsdrost7 <[email protected]>

* Optimize release workflow based on code review feedback

Co-authored-by: nielsdrost7 <[email protected]>

* Address final code review feedback and update documentation

Co-authored-by: nielsdrost7 <[email protected]>

* Add explicit permissions to workflow for security (CodeQL fix)

Co-authored-by: nielsdrost7 <[email protected]>

* Enhance workflow with user feedback: PHP 8.4, vendor cleaner, checksums, release notes

Co-authored-by: nielsdrost7 <[email protected]>

* Address code review feedback: optimize vendor cleaner install, improve mPDF cleanup, limit release notes

Co-authored-by: nielsdrost7 <[email protected]>

* Update Crowdin config to use full language names instead of two-letter codes

Co-authored-by: nielsdrost7 <[email protected]>

* Add automatic versioning, tagging, and GitHub release creation

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Copilot <[email protected]>
nielsdrost7 added a commit that referenced this pull request Dec 29, 2025
* [IP-85]: Export Possibilities (#124)

* Making export possible refs #85

* Some more Export tests refs #85

* Making export possible refs #85

* Adds the maatwebsite/excel package and prepares all exports, export services and actions that call the export services refs #85

* Intermediary commits for the exports refs #85

* Intermediary commits for the exports refs #85

* Intermediary commits for the exports refs #85

* Exports for Projects, Tasks, Products, Payments, Invoices, Quotes, Expenses, Relations, Contacts refs #85

* Exports for Projects, Tasks, Products, Payments, Invoices, Quotes, Expenses, Relations, Contacts refs #85

* just a new phpstan baseline (8 more errors)

* Update Modules/Clients/Exports/ContactsExport.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Clients/Exports/ContactsLegacyExport.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Quotes/Feature/Modules/QuotesExportImportTest.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Expenses/Exports/ExpensesExport.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Payments/Services/PaymentExportService.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Refactor exports to use Filament Export Actions with SOLID/DRY principles and i18n support (#128)

* Initial plan

* Create Filament Exporters for all modules

Co-authored-by: nielsdrost7 <[email protected]>

* Update all List Pages to use Filament Export Actions

Co-authored-by: nielsdrost7 <[email protected]>

* Add Filament exports table migration

Co-authored-by: nielsdrost7 <[email protected]>

* Add comprehensive export refactoring documentation

Co-authored-by: nielsdrost7 <[email protected]>

* Fix exporters: add translations, handle enums/dates/accessors properly, implement DRY with BaseExporter

Co-authored-by: nielsdrost7 <[email protected]>

* Update documentation to reflect code improvements and explain test requirements

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Refactor export tests, document queue requirements, and add AI agent guidelines (#129)

* Initial plan

* Refactor Expenses, Invoices, and Quotes export tests to use Queue fakes

Co-authored-by: nielsdrost7 <[email protected]>

* Complete export test refactoring for all modules and remove exports migration

Co-authored-by: nielsdrost7 <[email protected]>

* Add export architecture documentation explaining temporary nature of export records

Co-authored-by: nielsdrost7 <[email protected]>

* Clean up unused imports in ExpensesExportImportTest

Co-authored-by: nielsdrost7 <[email protected]>

* Update README and documentation files with queue requirements for exports

- Added queue worker requirement to main README.md features and installation
- Updated .github/copilot-instructions.md with Queue System in tech stack
- Added Export System Rules section to copilot-instructions.md
- Enhanced Modules/Core/Filament/Exporters/README.md with detailed queue configuration
- Included local development and production setup instructions
- Added Supervisor configuration example for production environments

Co-authored-by: nielsdrost7 <[email protected]>

* Create comprehensive .junie/guidelines.md for AI agent configuration

Created detailed guidelines document for AI agents (like Junie) with:
- Complete project architecture overview
- SOLID principles and code quality standards
- DTO/Transformer patterns with examples
- Testing standards and export testing rules
- Database/Model conventions
- Filament resource best practices
- Export system architecture and queue configuration
- Security and multi-tenancy guidelines
- Development workflow commands
- Performance optimization strategies
- Common pitfalls to avoid
- Code review checklist
- Documentation references and learning resources

This provides maximum information for AI agents to understand the codebase structure, conventions, and performance requirements.

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Update Modules/Projects/Services/ProjectExportService.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Add automated production release workflow with Crowdin integration, automatic versioning, and GitHub releases (#134)

* Initial plan

* Add production release workflow with Crowdin integration

Co-authored-by: nielsdrost7 <[email protected]>

* Optimize release workflow based on code review feedback

Co-authored-by: nielsdrost7 <[email protected]>

* Address final code review feedback and update documentation

Co-authored-by: nielsdrost7 <[email protected]>

* Add explicit permissions to workflow for security (CodeQL fix)

Co-authored-by: nielsdrost7 <[email protected]>

* Enhance workflow with user feedback: PHP 8.4, vendor cleaner, checksums, release notes

Co-authored-by: nielsdrost7 <[email protected]>

* Address code review feedback: optimize vendor cleaner install, improve mPDF cleanup, limit release notes

Co-authored-by: nielsdrost7 <[email protected]>

* Update Crowdin config to use full language names instead of two-letter codes

Co-authored-by: nielsdrost7 <[email protected]>

* Add automatic versioning, tagging, and GitHub release creation

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Copilot <[email protected]>

* [IP-130]: Report Builder: Drag-and-Drop, Block-Based, Multi-Tenant, Grid-Snapped Reports for InvoicePlane v2 (#111)

* Making export possible refs #85

* Some more Export tests refs #85

* Making export possible refs #85

* Adds the maatwebsite/excel package and prepares all exports, export services and actions that call the export services refs #85

* Intermediary commits for the exports refs #85

* Intermediary commits for the exports refs #85

* Intermediary commits for the exports refs #85

* Exports for Projects, Tasks, Products, Payments, Invoices, Quotes, Expenses, Relations, Contacts refs #85

* Exports for Projects, Tasks, Products, Payments, Invoices, Quotes, Expenses, Relations, Contacts refs #85

* just a new phpstan baseline (8 more errors)

* Initial plan

* Add report_templates disk and ReportTemplateFileRepository with tests

Co-authored-by: nielsdrost7 <[email protected]>

* Address code review feedback - add throw/report config, improve JSON handling

Co-authored-by: nielsdrost7 <[email protected]>

* Add ReportTemplate model and migration for ReportBuilder module (#117)

* Initial plan

* Add ReportTemplate model, migration and tests

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Add BlockDTO, GridPositionDTO, and BlockTransformer for ReportBuilder module (#118)

* Initial plan

* Create BlockDTO, GridPositionDTO, and BlockTransformer

Co-authored-by: nielsdrost7 <[email protected]>

* Add comprehensive tests for BlockDTO, GridPositionDTO, and BlockTransformer

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Implement ReportBuilder service layer with template management and PDF rendering (#119)

* Initial plan

* Add ReportBuilder services, handlers, and factory

Co-authored-by: nielsdrost7 <[email protected]>

* Fix property names in block handlers to match models

Co-authored-by: nielsdrost7 <[email protected]>

* Add unit tests for ReportBuilder services

Co-authored-by: nielsdrost7 <[email protected]>

* Use static BlockFactory methods in ReportRenderer

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Add Filament Admin resources and feature tests for ReportBuilder module (#120)

* Initial plan

* Add Filament Admin resources and feature tests for ReportBuilder

Co-authored-by: nielsdrost7 <[email protected]>

* Add module configuration and service provider for ReportBuilder

Co-authored-by: nielsdrost7 <[email protected]>

* Fix loadBlocks method to properly index blocks by ID

Co-authored-by: nielsdrost7 <[email protected]>

* Address code review feedback: improve filters, confirmations, and test quality (#121)

* Initial plan

* Implement code review feedback: improve filters, confirmations, and test quality

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Update Modules/Clients/Exports/ContactsExport.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Clients/Models/Relation.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Clients/Services/RelationExportService.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Expenses/Exports/ExpensesExport.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Expenses/Feature/Modules/ExpensesExportImportTest.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Quotes/Filament/Company/Resources/Quotes/Pages/ListQuotes.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Projects/Feature/Modules/TasksExportImportTest.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/ReportBuilder/Repositories/ReportTemplateFileRepository.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Address code review feedback: remove duplication, improve type safety, and harden error handling (#122)

* Initial plan

* Implement code review fixes - part 1

- Remove duplicate color() method call in TasksTable
- Remove unused getStatusColor() helper
- Extract shared formatCurrency() to trait
- Unify export methods in ContactExportService and ProjectExportService
- Tighten mapping type in ContactsExport
- Update PHPDoc for enum casts in Payment model
- Remove no-op mutateDataUsing calls
- Translate hard-coded section headings
- Add PHPMD suppression for unused parameter
- Strengthen QR escaping with full ENT flags
- Use array_replace_recursive for deep merges
- Remove public URL from private disk config
- Harden JSON encoding/decoding with error handling
- Document export_version config constraint
- Instantiate handlers via container

Co-authored-by: nielsdrost7 <[email protected]>

* Add column formatting, user feedback, and logging improvements

- Add explicit column formats for dates and totals in InvoicesExport
- Add user feedback notification after template creation
- Log failed file deletions in ReportTemplateService

Co-authored-by: nielsdrost7 <[email protected]>

* Improve test assertions and coverage

- Add PDF signature check in ReportRenderingTest
- Loosen exception message assertion in BlockFactoryTest
- Verify deep copy in BlockDTOTest cloning test

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Fix duplicate code review issues: DTO initialization, enum serialization, export consistency (#123)

* Initial plan

* Fix blockers: GridPositionDTO constructor and export action ID mismatches

Co-authored-by: nielsdrost7 <[email protected]>

* Fix enum serialization, invalid icons, and ReportTemplateService improvements

Co-authored-by: nielsdrost7 <[email protected]>

* Add medium priority fixes: export headers, null-safety, company context guards

Co-authored-by: nielsdrost7 <[email protected]>

* Add low priority fixes: replace mb_trim, fix ReportRenderer factory usage

Co-authored-by: nielsdrost7 <[email protected]>

* Complete remaining export service improvements (Invoice, Payment, Project, Relation)

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Standardize test naming conventions and AAA comment structure (#125)

* Initial plan

* Standardize unit test naming to use it_ prefix and #[Test] attributes

Co-authored-by: nielsdrost7 <[email protected]>

* Standardize AAA comment casing to lowercase in ReportBuilder tests

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Update config/ip.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* ran pint

* Add AAA comments to ReportTemplateFileRepositoryTest and BlockTransformerTest

Co-authored-by: nielsdrost7 <[email protected]>

* Add AAA comments to all remaining test files in ReportBuilder module

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: Niels Drost <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: wysiwyg <[email protected]>

* [IP-126]: Feature: Implement peppol (#113)

* Making export possible refs #85

* Some more Export tests refs #85

* Making export possible refs #85

* Adds the maatwebsite/excel package and prepares all exports, export services and actions that call the export services refs #85

* Intermediary commits for the exports refs #85

* Intermediary commits for the exports refs #85

* Intermediary commits for the exports refs #85

* Exports for Projects, Tasks, Products, Payments, Invoices, Quotes, Expenses, Relations, Contacts refs #85

* Exports for Projects, Tasks, Products, Payments, Invoices, Quotes, Expenses, Relations, Contacts refs #85

* just a new phpstan baseline (8 more errors)

* Initial plan

* Add comprehensive Peppol integration with HTTP clients, services, actions, and tests

Co-authored-by: nielsdrost7 <[email protected]>

* Add comprehensive Peppol documentation and example configuration

Co-authored-by: nielsdrost7 <[email protected]>

* Add decorator tests and complete documentation with files summary

Co-authored-by: nielsdrost7 <[email protected]>

* Add Peppol fields to relations table and create supporting enums and traits

Co-authored-by: nielsdrost7 <[email protected]>

* Refactor HTTP client architecture: simplify to single request() method, remove convenience methods

Co-authored-by: nielsdrost7 <[email protected]>

* Update Modules/Invoices/Providers/InvoicesServiceProvider.php

Co-authored-by: Copilot <[email protected]>

* Update Modules/Invoices/Tests/Unit/Peppol/Services/PeppolServiceTest.php

Co-authored-by: Copilot <[email protected]>

* Update Modules/Invoices/Tests/Unit/Actions/SendInvoiceToPeppolActionTest.php

Co-authored-by: Copilot <[email protected]>

* Expand Peppol infrastructure: comprehensive format enum, endpoint schemes, Strategy Pattern handlers, and configurable settings

Co-authored-by: nielsdrost7 <[email protected]>

* Implement Strategy Pattern for format handlers with PEPPOL BIS and UBL handlers, update PeppolService with LogsApiRequests trait

Co-authored-by: nielsdrost7 <[email protected]>

* Implement complete e-invoice.be API: Participants, Tracking, Webhooks, and Health clients with comprehensive documentation

Co-authored-by: nielsdrost7 <[email protected]>

* Add comprehensive implementation summary documenting all Peppol features and architecture

Co-authored-by: nielsdrost7 <[email protected]>

* Implement CII format handler with comprehensive UN/CEFACT standard compliance

Co-authored-by: nielsdrost7 <[email protected]>

* Fix ApiClient references across test suite and register CII handler

Co-authored-by: nielsdrost7 <[email protected]>

* Add comprehensive tests for PeppolDocumentFormat enum with 15 test cases

Co-authored-by: nielsdrost7 <[email protected]>

* Update Modules/Clients/Database/Migrations/2025_10_01_002042_add_peppol_fields_to_relations_table.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update Modules/Invoices/Peppol/Clients/EInvoiceBe/EInvoiceBeClient.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Implement missing Peppol format handlers and comprehensive test suite (#108)

* Initial plan

* Add missing Peppol format handlers and PeppolEndpointScheme tests

Co-authored-by: nielsdrost7 <[email protected]>

* Add comprehensive tests for format handlers and update README with format documentation

Co-authored-by: nielsdrost7 <[email protected]>

* 📝 Add docstrings to `copilot/implement-format-handlers` (#109)

Docstrings generation was requested by @nielsdrost7.

* #108 (comment)

The following files were modified:

* `Modules/Invoices/Peppol/FormatHandlers/EhfHandler.php`
* `Modules/Invoices/Peppol/FormatHandlers/FacturXHandler.php`
* `Modules/Invoices/Peppol/FormatHandlers/FacturaeHandler.php`
* `Modules/Invoices/Peppol/FormatHandlers/FatturaPaHandler.php`
* `Modules/Invoices/Peppol/FormatHandlers/OioublHandler.php`
* `Modules/Invoices/Peppol/FormatHandlers/ZugferdHandler.php`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Implement PEPPOL e-invoicing with dynamic provider architecture (#104)

* Initial plan

* Add core PEPPOL database migrations, models, providers, and events

Co-authored-by: nielsdrost7 <[email protected]>

* Add Jobs, Services, and enhanced configuration for PEPPOL lifecycle management

Co-authored-by: nielsdrost7 <[email protected]>

* Add audit listener, console commands, and comprehensive architecture documentation

Co-authored-by: nielsdrost7 <[email protected]>

* Refactor PEPPOL to use enums, remove JSON columns, use key-value config, and logging trait

Co-authored-by: nielsdrost7 <[email protected]>

* Implement dynamic provider discovery by scanning Providers directory

Co-authored-by: nielsdrost7 <[email protected]>

* Update Modules/Invoices/Models/CustomerPeppolValidationHistory.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* 📝 Add docstrings to `copilot/add-peppol-architecture-components` (#105)

Docstrings generation was requested by @nielsdrost7.

* #104 (comment)

The following files were modified:

* `Modules/Clients/Database/Migrations/2025_10_02_000007_add_peppol_validation_fields_to_relations_table.php`
* `Modules/Clients/Models/Relation.php`
* `Modules/Invoices/Console/Commands/PollPeppolStatusCommand.php`
* `Modules/Invoices/Console/Commands/RetryFailedPeppolTransmissionsCommand.php`
* `Modules/Invoices/Console/Commands/TestPeppolIntegrationCommand.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000001_create_peppol_integrations_table.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000002_create_peppol_integration_config_table.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000003_create_peppol_transmissions_table.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000004_create_peppol_transmission_responses_table.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000005_create_customer_peppol_validation_history_table.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000006_create_customer_peppol_validation_responses_table.php`
* `Modules/Invoices/Enums/PeppolConnectionStatus.php`
* `Modules/Invoices/Enums/PeppolErrorType.php`
* `Modules/Invoices/Enums/PeppolTransmissionStatus.php`
* `Modules/Invoices/Enums/PeppolValidationStatus.php`
* `Modules/Invoices/Events/Peppol/PeppolAcknowledgementReceived.php`
* `Modules/Invoices/Events/Peppol/PeppolEvent.php`
* `Modules/Invoices/Events/Peppol/PeppolIdValidationCompleted.php`
* `Modules/Invoices/Events/Peppol/PeppolIntegrationCreated.php`
* `Modules/Invoices/Events/Peppol/PeppolIntegrationTested.php`
* `Modules/Invoices/Events/Peppol/PeppolTransmissionCreated.php`
* `Modules/Invoices/Events/Peppol/PeppolTransmissionDead.php`
* `Modules/Invoices/Events/Peppol/PeppolTransmissionFailed.php`
* `Modules/Invoices/Events/Peppol/PeppolTransmissionPrepared.php`
* `Modules/Invoices/Events/Peppol/PeppolTransmissionSent.php`
* `Modules/Invoices/Jobs/Peppol/PeppolStatusPoller.php`
* `Modules/Invoices/Jobs/Peppol/RetryFailedTransmissions.php`
* `Modules/Invoices/Jobs/Peppol/SendInvoiceToPeppolJob.php`
* `Modules/Invoices/Listeners/Peppol/LogPeppolEventToAudit.php`
* `Modules/Invoices/Models/CustomerPeppolValidationHistory.php`
* `Modules/Invoices/Models/CustomerPeppolValidationResponse.php`
* `Modules/Invoices/Models/PeppolIntegration.php`
* `Modules/Invoices/Models/PeppolIntegrationConfig.php`
* `Modules/Invoices/Models/PeppolTransmission.php`
* `Modules/Invoices/Models/PeppolTransmissionResponse.php`
* `Modules/Invoices/Peppol/Contracts/ProviderInterface.php`
* `Modules/Invoices/Peppol/FormatHandlers/FormatHandlerFactory.php`
* `Modules/Invoices/Peppol/Providers/BaseProvider.php`
* `Modules/Invoices/Peppol/Providers/EInvoiceBe/EInvoiceBeProvider.php`
* `Modules/Invoices/Peppol/Providers/ProviderFactory.php`
* `Modules/Invoices/Peppol/Providers/Storecove/StorecoveProvider.php`
* `Modules/Invoices/Peppol/Services/PeppolManagementService.php`
* `Modules/Invoices/Peppol/Services/PeppolTransformerService.php`
* `Modules/Invoices/Traits/LogsPeppolActivity.php`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* CodeRabbit Generated Unit Tests: Add PEPPOL PHPUnit test suite and testing documentation (#107)

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Revert "feat: Implement PEPPOL e-invoicing with dynamic provider architecture…" (#112)

This reverts commit 3462b27.

* Copilot/add peppol architecture components (#114)

* Initial plan

* Add core PEPPOL database migrations, models, providers, and events

Co-authored-by: nielsdrost7 <[email protected]>

* Add Jobs, Services, and enhanced configuration for PEPPOL lifecycle management

Co-authored-by: nielsdrost7 <[email protected]>

* Add audit listener, console commands, and comprehensive architecture documentation

Co-authored-by: nielsdrost7 <[email protected]>

* Refactor PEPPOL to use enums, remove JSON columns, use key-value config, and logging trait

Co-authored-by: nielsdrost7 <[email protected]>

* Implement dynamic provider discovery by scanning Providers directory

Co-authored-by: nielsdrost7 <[email protected]>

* Update Modules/Invoices/Models/CustomerPeppolValidationHistory.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* 📝 Add docstrings to `copilot/add-peppol-architecture-components` (#105)

Docstrings generation was requested by @nielsdrost7.

* #104 (comment)

The following files were modified:

* `Modules/Clients/Database/Migrations/2025_10_02_000007_add_peppol_validation_fields_to_relations_table.php`
* `Modules/Clients/Models/Relation.php`
* `Modules/Invoices/Console/Commands/PollPeppolStatusCommand.php`
* `Modules/Invoices/Console/Commands/RetryFailedPeppolTransmissionsCommand.php`
* `Modules/Invoices/Console/Commands/TestPeppolIntegrationCommand.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000001_create_peppol_integrations_table.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000002_create_peppol_integration_config_table.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000003_create_peppol_transmissions_table.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000004_create_peppol_transmission_responses_table.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000005_create_customer_peppol_validation_history_table.php`
* `Modules/Invoices/Database/Migrations/2025_10_02_000006_create_customer_peppol_validation_responses_table.php`
* `Modules/Invoices/Enums/PeppolConnectionStatus.php`
* `Modules/Invoices/Enums/PeppolErrorType.php`
* `Modules/Invoices/Enums/PeppolTransmissionStatus.php`
* `Modules/Invoices/Enums/PeppolValidationStatus.php`
* `Modules/Invoices/Events/Peppol/PeppolAcknowledgementReceived.php`
* `Modules/Invoices/Events/Peppol/PeppolEvent.php`
* `Modules/Invoices/Events/Peppol/PeppolIdValidationCompleted.php`
* `Modules/Invoices/Events/Peppol/PeppolIntegrationCreated.php`
* `Modules/Invoices/Events/Peppol/PeppolIntegrationTested.php`
* `Modules/Invoices/Events/Peppol/PeppolTransmissionCreated.php`
* `Modules/Invoices/Events/Peppol/PeppolTransmissionDead.php`
* `Modules/Invoices/Events/Peppol/PeppolTransmissionFailed.php`
* `Modules/Invoices/Events/Peppol/PeppolTransmissionPrepared.php`
* `Modules/Invoices/Events/Peppol/PeppolTransmissionSent.php`
* `Modules/Invoices/Jobs/Peppol/PeppolStatusPoller.php`
* `Modules/Invoices/Jobs/Peppol/RetryFailedTransmissions.php`
* `Modules/Invoices/Jobs/Peppol/SendInvoiceToPeppolJob.php`
* `Modules/Invoices/Listeners/Peppol/LogPeppolEventToAudit.php`
* `Modules/Invoices/Models/CustomerPeppolValidationHistory.php`
* `Modules/Invoices/Models/CustomerPeppolValidationResponse.php`
* `Modules/Invoices/Models/PeppolIntegration.php`
* `Modules/Invoices/Models/PeppolIntegrationConfig.php`
* `Modules/Invoices/Models/PeppolTransmission.php`
* `Modules/Invoices/Models/PeppolTransmissionResponse.php`
* `Modules/Invoices/Peppol/Contracts/ProviderInterface.php`
* `Modules/Invoices/Peppol/FormatHandlers/FormatHandlerFactory.php`
* `Modules/Invoices/Peppol/Providers/BaseProvider.php`
* `Modules/Invoices/Peppol/Providers/EInvoiceBe/EInvoiceBeProvider.php`
* `Modules/Invoices/Peppol/Providers/ProviderFactory.php`
* `Modules/Invoices/Peppol/Providers/Storecove/StorecoveProvider.php`
* `Modules/Invoices/Peppol/Services/PeppolManagementService.php`
* `Modules/Invoices/Peppol/Services/PeppolTransformerService.php`
* `Modules/Invoices/Traits/LogsPeppolActivity.php`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* CodeRabbit Generated Unit Tests: Add PEPPOL PHPUnit test suite and testing documentation (#107)

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* ran pint

* ran pint

* ran phpstan, pint

* pint, tmp

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: wysiwyg <[email protected]>

* Update Modules/Invoices/Peppol/FormatHandlers/ZugferdHandler.php

Co-authored-by: Copilot <[email protected]>

* Comment out optional health checks in docker.yml

Commented out the optional health checks or tests section.

* Address PR review comments: security fix, SOLID refactoring, FQDN cleanup, documentation updates (#275)

* Initial plan

* Fix security and code style issues from review

Co-authored-by: nielsdrost7 <[email protected]>

* Refactor PaymentService and PaymentExportService following SOLID principles

Co-authored-by: nielsdrost7 <[email protected]>

* Update documentation with Peppol integration details and improved guidelines

Co-authored-by: nielsdrost7 <[email protected]>

* Replace all FQDN usage with proper imports across codebase

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* feat: Implement multiple Filament panel themes (#277)

* Added basic InvoicePlane theme

* Added CSS to invoiceplane-blue theme

* Added CSS to invoiceplane-blue theme

* Updated theme name

* Initial plan

* feat: Add multiple Filament themes (invoiceplane, invoiceplane_blue, nord, orange, reddit)

Co-authored-by: nielsdrost7 <[email protected]>

* feat: Configure themes for all Filament panels and add theme documentation

Co-authored-by: nielsdrost7 <[email protected]>

* docs: Enhance theme documentation with detailed color schemes and quick reference

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: AeroBytesNL <[email protected]>
Co-authored-by: Niels Drost <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Fix PHP 8.2 compatibility by constraining dependency versions (#278)

* Initial plan

* Fix PHP 8.2 compatibility by constraining package versions

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Update pint.yml

* Run Laravel Pint without test flag

* Replace DocumentGroup with unified Numbering system for all entity types (#279)

* Initial plan

* Add Numbering system core files: enum, model, service, DTO, migrations, and factory

Co-authored-by: nielsdrost7 <[email protected]>

* Fix code consistency: use trim instead of mb_trim, ensure mb_str_pad usage

Co-authored-by: nielsdrost7 <[email protected]>

* Add comprehensive unit tests for NumberingService

Co-authored-by: nielsdrost7 <[email protected]>

* Fix company_id handling in NumberingFactory and NumberingService

Co-authored-by: nielsdrost7 <[email protected]>

* Delete Modules/Core/DataTransferObjects/NumberingUpdateResult.php

* Remove create and edit routes from NumberingResource

Removed create and edit routes from getPages method.

* Delete Modules/Projects/Models/Job.php

* Delete Modules/Projects/Models/JobCard.php

* Refactor AbstractNumberGenerator to use Numbering model with thread-safe generation

Co-authored-by: nielsdrost7 <[email protected]>

* Delete Modules/Projects/Support/JobCardNumberGenerator.php

* Delete Modules/Projects/Support/JobNumberGenerator.php

* Remove Job and JobCard from NumberingType enum, keep only Project

Co-authored-by: nielsdrost7 <[email protected]>

* Add all entity types to NumberingType enum and create their number generators

Co-authored-by: nielsdrost7 <[email protected]>

* Merge DocumentGroup schema into Numbering model and migration

Co-authored-by: nielsdrost7 <[email protected]>

* Add reset functionality to AbstractNumberGenerator and create FK migration

Co-authored-by: nielsdrost7 <[email protected]>

* Add DocumentGroup as compatibility layer extending Numbering

Co-authored-by: nielsdrost7 <[email protected]>

* Change primary key from numbering_id back to id

Co-authored-by: nielsdrost7 <[email protected]>

* Remove all DocumentGroup and document_group_id references, replace with Numbering

Co-authored-by: nielsdrost7 <[email protected]>

* Add number fields to Payment, Project, and Task table migrations and models

Co-authored-by: nielsdrost7 <[email protected]>

* Update factories, forms, and tables for Payment, Project, and Task number fields

Co-authored-by: nielsdrost7 <[email protected]>

* Add smoke and crud groups to numbering test

* Rename NumberingFormTest.php to NumberingTest.php

* Delete Modules/Core/Tests/Feature/Numbering directory

* Refactor NumberingTest class and add new tests

* Apply suggestions from code review

Co-authored-by: Copilot <[email protected]>

* Fix code review issues: rename relationships, fix table names, improve tests

Co-authored-by: nielsdrost7 <[email protected]>

* Update Modules/Core/Database/Migrations/2009_01_01_000003_create_numbering_table.php

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Finishing touches: fix prefix replacement, add entity relationships, remove DTO

Co-authored-by: nielsdrost7 <[email protected]>

* Fix reset logic to apply consistently for all numbering schemes

Co-authored-by: nielsdrost7 <[email protected]>

* Fix unbounded while loop and improve company_id resolution with proper exception handling

Co-authored-by: nielsdrost7 <[email protected]>

* Restore extreme logging and add comprehensive template variable tests

Co-authored-by: nielsdrost7 <[email protected]>

* Restrict separators to dash/underscore, add company isolation tests, implement last_id troubleshooting

Co-authored-by: nielsdrost7 <[email protected]>

* Fix Numbering model relationships and update tests for actual schema

Co-authored-by: nielsdrost7 <[email protected]>

* Add missing numbering_id field to InvoiceForm schema

Co-authored-by: nielsdrost7 <[email protected]>

* Add comprehensive tests for numbering scheme changes on existing invoices

Co-authored-by: nielsdrost7 <[email protected]>

* Add duplicate number prevention, company panel numbering resource, and access control

Co-authored-by: nielsdrost7 <[email protected]>

* Move duplicate validation to Observers and internationalize all labels

Co-authored-by: nielsdrost7 <[email protected]>

* Update Modules/Core/Services/CompanyDefaultsBootstrapService.php

Co-authored-by: Copilot <[email protected]>

* Update Modules/Core/Services/NumberingService.php

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Address PR review comments: fix error handling, validation exceptions, and documentation accuracy (#280)

* Initial plan

* Fix PR review comments: improve error handling, docs, and validation

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Add write permissions to pint.yml workflow (#281)

* Initial plan

* Add permissions to pint.yml workflow to enable commit of lint fixes

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Fix Pint workflow auto-commit by replacing action with native git commands (#283)

* Initial plan

* fix: downgrade to git-auto-commit-action@v4 and improve configuration

- Use v4 instead of v5 for better stability
- Add ref parameter to checkout correct branch
- Add debug step to verify changes detection
- Remove complex file_pattern that may cause issues
- Add explicit skip_* configuration options

Co-authored-by: nielsdrost7 <[email protected]>

* fix: replace git-auto-commit-action with manual git commands

- Remove git-auto-commit-action dependency entirely
- Use native git commands for commit and push
- Add conditional check to only commit if changes exist
- Configure git user as github-actions[bot]
- Add clear logging for success/no-changes cases

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* Fix PHP parse error in NumberingCompanyIsolationTest and improve Pint workflow error handling (#284)

* Initial plan

* Fix parse error in NumberingCompanyIsolationTest.php by correcting namespace separator

Co-authored-by: nielsdrost7 <[email protected]>

* Improve pint.yml to commit successfully formatted files even when parse errors occur

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

* style: apply Laravel Pint fixes

* Display Pint progress in real-time during workflow execution (#285)

* Initial plan

* feat: show Pint progress in real-time with duration notice

Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: wysiwyg <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: AeroBytesNL <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
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