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.
Added support for soft-deleted models in ChangeModelOrder and ChangeModelOrderPosition actions.
This allows for proper order adjustments even when models are soft-deleted.
- Condition strikethrough price display on showStrippedPrice in ProductCard.vue
- Add showStrippedPrice to product Zod schemas, TypeScript types, repositories and store
- Optimize showStrippedPrice in FilteredProductResource using eager-loaded validDiscount
- Add unit tests for productModelSchema and integration tests in ProductsControllerTest
Refactor OrderReferenceCast to utilize base58 encoding for order references instead of UUID.
This change improves compatibility with the new OrderReference implementation.
- Convert hardcoded strings and French translation keys to English keys across Blade templates, Vue components, TypeScript modules, models, and routes
- Complete and synchronize lang/fr.json and lang/en.json translation dictionaries
- Add timezone attribute in lang/fr/validation.php and lang/en/validation.php
- Add missing English lang files for parity: crud.php, models.php, search.php, and vue.php
- 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