-
Notifications
You must be signed in to change notification settings - Fork 3
Refactor export tests, document queue requirements, and add AI agent guidelines #129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor export tests, document queue requirements, and add AI agent guidelines #129
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the Comment |
Co-authored-by: nielsdrost7 <[email protected]>
…igration Co-authored-by: nielsdrost7 <[email protected]>
…export records Co-authored-by: nielsdrost7 <[email protected]>
Co-authored-by: nielsdrost7 <[email protected]>
nielsdrost7
left a comment
There was a problem hiding this 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]>
Updated documentation to clearly indicate queue requirements for exports. Changes in commit 1372a9b: README.md:
.github/copilot-instructions.md:
Modules/Core/Filament/Exporters/README.md:
Note: |
nielsdrost7
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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]>
... Created Architecture & Principles:
Development Patterns:
Testing Standards:
Technical Details:
Performance & Quality:
Resources:
The document provides maximum information density (472 lines) covering all critical aspects of the codebase for optimal AI agent performance. |
5e9cfe9
into
feature/85-core-export-clients-invoices-expenses-payments-etc
* 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-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>
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
CHECKLIST.mdphp artisan testand all tests pass (requires dev dependencies)vendor/bin/pintto fix code formattingRelated Issues
Related to previous export refactoring work
Notes for Reviewers
Test Pattern
All 56+ export tests now follow this pattern:
Key Changes
Test Refactoring (9 files)
Queue::fake()andStorage::fake()(fakes over mocks)Bus::assertChained()data: ['columnMap' => ...]markTestIncomplete()callsDatabase Storage Elimination
Modules/Core/Database/Migrations/2025_11_13_061624_create_exports_table.phpexportstable for internal job coordination onlyPrunabletrait for auto-cleanupDocumentation Updates (4 files)
php artisan queue:workcommand in installation steps with production queue driver notesArchitecture
The
exportstable exists solely for Filament's internal queue job coordination:It is not for export history. Records are ephemeral and auto-prunable via
php artisan model:prune.QUEUE_CONNECTION=syncor runphp artisan queue:work. For production, configure Redis or database queue driver with Supervisor.Statistics
it_prefix,#[Test]attribute, "Arrange/Act/Assert" structureOriginal prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.