Commit graph

745 commits

Author SHA1 Message Date
Jérémy Munsch
f84a1a7b8c
fix(orders): preserve pagination and query parameters in IndexOrdersRequest 2026-10-27 09:58:46 +01:00
Jérémy Munsch
30c4483ce9
fix(database): clean orders employee service code and legacy site names
- Strip site prefix and non-digits from service code in orders.employee JSON snapshot
- Normalize legacy site names with spaces (LDC SERVICES, LDC VOLAILLES, LDC TER) in orders.employee and employees tables
2026-10-27 09:58:46 +01:00
Jérémy Munsch
e0c4b34ed8
feat(employees): implement deterministic 6-character code generation using SerialCaster
- Add kwaadpepper/serial-int-caster and SerialCasterServiceProvider
- Update CodeGenerationService to encode Matricule deterministically with length 6
- Update Code value object to support lengths between 6 and 10 with 53 non-ambiguous characters
- Add database migration to sanitize legacy ambiguous codes
- Recreate and update unit and integration tests for CodeGenerationService and Code value object
2026-10-27 09:58:46 +01:00
Jérémy Munsch
8b96ce90be
test(casts): add tests for EmployeeSitesCast functionality
test(casts): add tests for ShopperEstablishmentCodeCast functionality

test(casts): add tests for ShopperServiceCodeCast functionality

test(casts): add tests for ShopperSiteCodeCast functionality

test(dto): update ProductDtoTest to include additional fields

test(dto): update SettingDtoTest to remove arcadiaSites assertions

test(events): update AnOrderHasBeenPlacedTest to use value objects

test(entities): update OrderTest to use value objects for employee details

test(value-objects): update EmployeeUpsertDataTest to use value objects

test(pagination): update PaginationTest to access value properties

test(services): update AppCustomerAuthServiceTest to use CrmHashcode

test(services): update CrmServiceTest to use CrmHashcode for customer retrieval
2026-10-27 09:58:45 +01:00
Jérémy Munsch
55ea4b55f3
refactor(tests): update logout method to use Auth facade
Improves clarity by using the Auth facade for logout.
2026-10-27 09:58:45 +01:00
Jérémy Munsch
3398aacc86
refactor(casts): update exception handling to use fully qualified class names
Refactored exception handling in various cast classes to use fully qualified class names for InvalidArgumentException and UnexpectedValueException.
2026-10-27 09:58:45 +01:00
Jérémy Munsch
6b649a8e7d
refactor(models): update property types in Setting model
Updated the type annotations for employee_sites to allow mixed types and reordered arcadia_sites for clarity.
2026-10-27 09:58:45 +01:00
Jérémy Munsch
3b3997d547
feat(employees): automated sync with Arcadia API, BO settings, Shopper value objects, and pagination migration
- Implement automated synchronization of employees via Arcadia API (EmployeeSyncService, SynchronizeEmployeesWithArcadiaApi, FetchAndUpsertArcadiaEmployees)
- Add Back-Office application settings for employee sites (Setting singleton, GetSettingsQuery, UpdateSettings, SettingsController, EmployeeSitesInputComponent.vue)
- Strongly type Employee attributes using Domain Value Objects (ShopperEstablishmentCode, ShopperSiteCode, ShopperServiceCode) and Eloquent Casts
- Migrate pagination from Domain to Shared\Pagination namespace across queries and inputs
- Remove legacy and dead CSV employee import/export code
- Restore Domain\Ports\Services\CsvGenerator interface for Regate order generation
- Add comprehensive Pest unit, integration, and feature test coverage
2026-10-27 09:58:44 +01:00
Jérémy Munsch
e5df954cf8
chore: add composer dep uwil/arcadia-api-php-client 2026-10-27 09:58:44 +01:00
Jérémy Munsch
9ebf712170
refactor(cqs): complete Fo/PageController, BO FormRequest input mappings, and decouple Directories 2026-10-27 09:58:44 +01:00
Jérémy Munsch
aad9586ca9
refactor(tunnel): migrate Fo\TunnelController to CQS pattern 2026-10-27 09:58:43 +01:00
Jérémy Munsch
35feddfb3d
refactor(dashboard): migrate Bo\DashboardController to CQS pattern 2026-10-27 09:58:43 +01:00
Jérémy Munsch
d912d4b096
refactor(orders): migrate Bo\OrdersController and Fo\OrderController to CQS pattern 2026-10-27 09:58:43 +01:00
Jérémy Munsch
8dd54f8824
fix(bo): fix MissingAttributeException in GetProductFormDataQuery 2026-10-27 09:58:42 +01:00
Jérémy Munsch
2ae317aad6
refactor(employees): migrate Bo EmployeesController to CQS pattern
- Add ImportEmployees Action and ImportEmployeesInput
- Add GetEmployeeImportColumnsQuery
- Encapsulate toImportEmployeesInput in ImportRequest
- Use Executor in Bo\EmployeesController
- Add feature tests for Bo\EmployeesController
2026-10-27 09:58:42 +01:00
Jérémy Munsch
70600ea623
refactor(products): migrate BO and FO ProductsControllers to CQS pattern
- Refactor Bo\ProductsController to use ActionExecutor and Queries
- Refactor Fo\Pages\ProductsController and Fo\Ajax\ProductsController to CQS
- Add Actions: CreateProduct, UpdateProduct, DeleteProduct with Inputs
- Add Queries: GetBoPaginatedProductsQuery, GetProductFormDataQuery, GetFoProductIndexPageQuery, GetFoFilteredProductsQuery
- Add DTOs: ProductFormDataDto and enrich ProductDto
- Encapsulate Action/Query inputs conversion in FormRequests
- Remove obsolete ProductDirectory and EloquentProductDirectory
- Add tests for Fo\Ajax\ProductsController
2026-10-27 09:58:42 +01:00
Jérémy Munsch
668151fdaf
refactor(fo): migrate HomeController to CQS queries with DTOs 2026-10-27 09:58:41 +01:00
Jérémy Munsch
9aab392350
feat(bo): refactor ProductIncosController to strict CQS with actions, DTOs, and request mapping 2026-10-27 09:58:41 +01:00
Jérémy Munsch
274432a472
chore(env): update mail configuration for local development
Changed mail settings to use log driver and local host for testing.
2026-10-27 09:58:41 +01:00
Jérémy Munsch
0fef2cfc98
refactor(fo): refactor ContactController using GetShopQuery and CQS 2026-10-27 09:58:40 +01:00
Jérémy Munsch
6dd9ef90ae
feat(bo): add replacement date display in pickup exceptions
Display the replacement date for associated exceptions in the pickup exceptions view.
2026-10-27 09:58:40 +01:00
Jérémy Munsch
55ae6553d8
refactor(bo): refactor DiscountsController to strict CQS pattern with actions, queries and DTOs 2026-10-27 09:58:40 +01:00
Jérémy Munsch
f79f1e1494
fix(bo): enforce order deadline before replacement date in request and action input 2026-10-27 09:58:40 +01:00
Jérémy Munsch
85dc683ed9
fix(bo): fix pickup-exceptions validation regression and cryptic error messages 2026-10-27 09:58:39 +01:00
Jérémy Munsch
26992f52ff
feat(bo): refactor PickupExceptionsController to strict CQS with actions, queries, and DTOs 2026-10-27 09:58:39 +01:00
Jérémy Munsch
9f1b4242b9
refactor(bo): encapsulate pickup exception filter in IndexShopRequest, align VOs and DTOs 2026-10-27 09:58:39 +01:00
Jérémy Munsch
b2c1b6eb1d
fix(dto): align PickupExceptionDto properties with database attributes 2026-10-27 09:58:38 +01:00
Jérémy Munsch
c997b37047
feat(bo): refactor ShopsController to strict CQS with actions, queries, VOs, and DTOs 2026-10-27 09:58:38 +01:00
Jérémy Munsch
8430458882
style(sweetalert-confirm): swap confirm and cancel button styles
Updated the confirm and cancel button classes for consistency in the SweetAlert dialog.
2026-10-27 09:58:38 +01:00
Jérémy Munsch
8a5246b389
style(buttons): update delete button size for consistency
Adjusted the delete button class to use a smaller size for better UI consistency across various sections.
2026-10-27 09:58:37 +01:00
Jérémy Munsch
b171b4a280
fix(arch): allow string in CrmHashcodeCast, fix misnamed query input, and update arch tests 2026-10-27 09:58:37 +01:00
Jérémy Munsch
ea2885115d
feat(timeslots): implement GetAvailableTimeslotsQuery and related classes
Added GetAvailableTimeslotsQuery, GetAvailableTimeslotsQueryInput, and GetAvailableTimeslotsQueryOutput
to handle fetching available timeslots for a shop, improving the structure and separation of concerns.
2026-10-27 09:58:37 +01:00
Jérémy Munsch
e0bc673f41
fix(product-model): make nutriscore nullable
Allows nutriscore to be optional in product model schema.
2026-10-27 09:58:36 +01:00
Jérémy Munsch
ecc03eee72
fix(filteredProduct): update nutriscore value retrieval
Ensure the nutriscore value is correctly accessed from the product's inco property.
2026-10-27 09:58:36 +01:00
Jérémy Munsch
dafb8bfdf5
style(vscode): update status bar colors for better visibility
Adjusted the status bar debugging foreground and inactive background colors for improved contrast.
2026-10-27 09:58:36 +01:00
Jérémy Munsch
16dbdbdad1
chore(config): add fileURLToPath import for path resolution
This change introduces the fileURLToPath import to enhance path handling in the configuration files.
2026-10-27 09:58:35 +01:00
Jérémy Munsch
46b5413f07
feat(basket): implement add, remove, and empty basket actions
This commit introduces new actions for adding, removing, and emptying items in the basket, along with their corresponding input classes. It also updates the BasketController to utilize these new actions, enhancing the basket management functionality.
2026-10-27 09:58:35 +01:00
Jérémy Munsch
b36d070db1
feat(crm): implement customer password update functionality
Adds the ability for customers to update their passwords through a new action and input/output classes.
2026-10-27 09:58:35 +01:00
Jérémy Munsch
5037154108
feat(crm): implement customer update functionality
Adds UpdateCustomer action, input, and output classes to handle customer information updates.
Integrates with existing services and updates the CustomerController to utilize the new action.
2026-10-27 09:58:34 +01:00
Jérémy Munsch
e89856966d
refactor(auth): use CrmHashcode value object for hashcode assignment
This change improves the handling of hashcodes by utilizing the CrmHashcode value object.
2026-10-27 09:58:34 +01:00
Jérémy Munsch
2aa4fa8aed
feat(crm): implement unsubscribe from newsletter functionality
- Added UnsubscribeFromNewsletter action and input/output classes.
- Introduced CrmHashcode value object and its cast.
- Updated NewsletterController to use the new unsubscribe action.
- Enhanced validation in UnsubscribeNewsletterRequest.
2026-10-27 09:58:34 +01:00
Jérémy Munsch
42bdae01cc
feat: implement pagination using Pagination value object
- Updated DataTableService to accept a Pagination object for pagination parameters.
- Refactored paginateQuery method to utilize pageSize and pageNumber from Pagination.

refactor: replace ActionExecutor with Executor in controller traits

- Updated ChangesModelOrder, TogglesModelStar, and TogglesModelStatus traits to use Executor interface instead of ActionExecutor.

feat: add PictureMetadata and Slug value objects

- Introduced PictureMetadata for managing image metadata with validation.
- Added Slug value object for slug generation and validation.

feat: update breadcrumbs to support RangeDto

- Modified breadcrumbs-bo.php to accept RangeDto in the edit route.

test: add tests for RangesController

- Added tests for accessing, creating, updating, and deleting ranges.
- Included tests for toggling range status.

test: add integration tests for range actions

- Created tests for CreateRange, DeleteRange, and UpdateRange actions.
- Validated input handling and database interactions.

test: add unit tests for range input classes

- Implemented tests for CreateRangeInput and UpdateRangeInput to validate input constraints.

test: add unit tests for value objects

- Added tests for PictureMetadata and Slug to ensure proper validation and instantiation.

test: add unit tests for RangeDto

- Created tests to verify RangeDto mapping from Range model.

test: add unit tests for RangePolicy

- Implemented tests for RangePolicy to validate permissions based on user roles.
2026-10-27 09:58:34 +01:00
Jérémy Munsch
31d7a789c4
refactor(slides): use fill() in slide actions and align model phpdocs with ide-helper 2026-10-27 09:58:33 +01:00
Jérémy Munsch
e2e2a357f7
refactor(slides): implement CQS actions, query, DTO, and DatePeriod VO for slides 2026-10-27 09:58:33 +01:00
Jérémy Munsch
1fd2a3a1d8
refactor(pages): implement CQS action, query, DTO, and SeoMetadata VO for pages 2026-10-27 09:58:33 +01:00
Jérémy Munsch
8f6006e209
test(faqs): assert html content is preserved and purified in faqs controller 2026-10-27 09:58:32 +01:00
Jérémy Munsch
797d1da1b2
refactor(faqs): implement CQS actions, query, and DTO for faqs 2026-10-27 09:58:32 +01:00
Jérémy Munsch
3ac95cc6f8
refactor(common): implement generic actions for controller traits (order, status, star) 2026-10-27 09:58:32 +01:00
Jérémy Munsch
c2dd9e79c5
feat(CkEditorComponent): add dynamic navbar height adjustment
Implement dynamic adjustment of the editor's viewport offset based on the navbar height during window resize events.
2026-10-27 09:58:31 +01:00
Jérémy Munsch
6e10308f53
refactor(CkEditorComponent): attach editor to ckeditor ref 2026-10-27 09:58:31 +01:00