Commit graph

42 commits

Author SHA1 Message Date
Jérémy Munsch
cd7d5f5fe9
feat(orders): implement default sorting for order queries
Added default sorting by date in descending order for order queries.
Updated related views and tests to reflect this change.
2026-10-29 21:16:06 +01:00
Jérémy Munsch
c8f895c759
refactor: simplify use statements and type hints
- Removed fully qualified names for better readability.
- Streamlined code by using direct class references.
2026-10-29 20:35:35 +01:00
Jérémy Munsch
c40016bba1
feat(order): implement order placement and related DTOs
- Add methods to convert OrderLine and DeliveryAddress to DTOs.
- Introduce toPlacedEvent method in Order to generate domain event.
- Enhance OrderUnit with Regate code mapping.
- Implement tests for new functionality and ensure correctness.
2026-10-29 20:35:13 +01:00
Jérémy Munsch
71e0d65f31
refactor(OrderService): simplify order creation from basket
Updated the OrderService to utilize the new fromBasket method for creating orders, enhancing code clarity and maintainability. Removed the ProductAvailabilityService as its functionality is now integrated into the ProductRepository.
2026-10-29 20:21:32 +01:00
Jérémy Munsch
e857a58d00
test(Product): add comprehensive tests for Product entity
- Implement tests for product publication status.
- Add tests for product orderability based on various conditions.
- Enhance pricing calculation tests for different discount scenarios.
- Remove outdated PricingServiceTest and refactor ProductAvailabilityServiceTest.
2026-10-29 19:48:38 +01:00
Jérémy Munsch
8e42639134
feat(order): implement change selected order functionality
Add functionality to change the order of models in the product list.
This includes new actions, requests, and UI components for user interaction.
2026-10-29 16:39:23 +01:00
Jérémy Munsch
b9999caf8d
feat(discounts): add discount logic for piece pricing
Implement discount calculations that apply to the piece (sold unit) for products invoiced by weight.
2026-10-29 15:43:37 +01:00
Jérémy Munsch
020e2f8526
test(DiscountProductDto): update tests to include picture attribute
Added picture attribute to the DiscountProductDto tests to ensure proper serialization.
2026-10-28 11:57:37 +01:00
Jérémy Munsch
713c937890
fix(casts): update OrderReferenceCast to use base58 encoding
Refactor OrderReferenceCast to utilize base58 encoding for order references instead of UUID.
This change improves compatibility with the new OrderReference implementation.
2026-10-27 16:17:28 +01:00
Jeremy Munsch
46e9c58ad2
refactor: battle test employee sync 2026-10-27 09:58:59 +01:00
Jérémy Munsch
87661b2a60
refactor: migrate customer registration and mass actions to actions 2026-10-27 09:58:55 +01:00
Jérémy Munsch
17f898e3f9
feat(domain): introduce DiscountRate VO and eliminate float rounding in pricing calculations 2026-10-27 09:58:54 +01:00
Jérémy Munsch
50df658d58
feat(product-incos): implement actions, queries, sync job and command for Arcadia INCO sheets 2026-10-27 09:58:53 +01:00
Jérémy Munsch
3de48c14fd
feat(arcadia): add ArcadiaIncoService and DTOs to fetch and preview INCO sheets via Arcadia API 2026-10-27 09:58:53 +01:00
Jérémy Munsch
5492ffe217
refactor(orders): simplify OrderReference to wrap UuidInterface directly and remove obsolete UuidConverter 2026-10-27 09:58:51 +01:00
Jérémy Munsch
ff831beb01
test: apply Given/When/Then structure to remaining Pest tests 2026-10-27 09:58:51 +01:00
Jérémy Munsch
3c309dc356
feat(slides): indicate visibility in BO and fix conditional slider display in FO 2026-10-27 09:58:47 +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
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
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
aad9586ca9
refactor(tunnel): migrate Fo\TunnelController to CQS pattern 2026-10-27 09:58:43 +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
0fef2cfc98
refactor(fo): refactor ContactController using GetShopQuery and CQS 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
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
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
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
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
98e580d327
refactor(tags): implement CRUD actions for tags
- Added CreateTag, UpdateTag, and DeleteTag actions.
- Introduced CreateTagInput and UpdateTagInput for input validation.
- Implemented ActionExecutor for executing actions with logging.
- Added tests for all new actions and input validation.
2026-10-27 09:58:30 +01:00
Jérémy Munsch
4ce5488bae
perf(datatable): cache schema column listings to avoid repeated table introspection [AUD-PER-002] 2026-10-27 09:58:27 +01:00
Jérémy Munsch
29fa8a1b7d
fix(order): revalidate basket prices and discounts during order finalization [AUD-DSA-001] 2026-10-27 09:58:26 +01:00
Jérémy Munsch
5a0b68496e
perf(crm): cache customer lookups and email verification with deterministic keys [AUD-PER-014] 2026-10-27 09:58:25 +01:00
Jérémy Munsch
149edff185
refactor: Closes #123 change the way stats are calculated and fixes employee radiation date 2026-10-27 09:58:15 +01:00
Jérémy Munsch
58af50b5c5
refactor: massive bump refactor 2026-10-27 09:58:12 +01:00
Vincent BRIDIER
2d868f2d8b init 2020-10-30 17:26:00 +01:00