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.
- 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.
Refactor OrderReferenceCast to utilize base58 encoding for order references instead of UUID.
This change improves compatibility with the new OrderReference implementation.
- 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
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
- 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
- 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.
- 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.