c94964c0b1
style(tests): fix spacing in IncoCompositionParserTest.php
2026-10-07 10:44:56 +02:00
dc836f911a
refactor(parser): normalize percentage value handling
...
Refactor percentage value parsing to use a dedicated method for better readability and maintainability.
Add tests to ensure legacy overflow percentages are normalized correctly.
2026-10-06 15:46:22 +02:00
62c221f6b6
feat(health): add oracle probe and normalize health checks
...
Refactor health check DTOs around a common CheckResult contract and remove the\nlegacy HealthChecks aggregate object.\n\nAdd a dedicated /api/v1/health/oracle endpoint with response mapping, OpenAPI\nschema updates, and Bruno request coverage.\n\nAlign feature, unit, integration, architecture and OpenAPI tests with the new\nset-based checks representation and make Oracle health tests deterministic in CI.\n\nUpdate command documentation to the uwil:* command namespace.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-06 14:51:46 +02:00
18fb5f8ac2
refactor(find): use polymorphic outputs for not found cases
...
Replace not-found exceptions in Arcadia find/show flows with typed outputs (Found*/NotFoundOutput) and map not-found results in presenters/responses while preserving HTTP 404 problem details.
Adjust architecture and unit tests to cover concrete output classes, and remove obsolete Arcadia not-found exception classes and their tests.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-05 15:50:01 +02:00
0adbe7175b
feat(employees): remove siteId parameter in favor of siteIds in request, OpenAPI spec and Bruno
2026-09-18 11:51:15 +02:00
3c4eeb3014
fix(employees): normalize scalar siteIds query parameter to array in prepareForValidation
2026-09-18 11:40:39 +02:00
6497b109a2
fix(inco): normalize scalar brands query parameter to array in prepareForValidation
2026-09-18 11:40:22 +02:00
04c39e2573
refactor(api): use League URI for RFC query string normalization and nested bracket support
2026-09-18 10:32:52 +02:00
10674f3295
feat(inco): restrict inco sheets list and search to short projection and remove short query parameter
2026-09-18 10:07:04 +02:00
5b2c0e58ce
docs(openapi): standardize array query parameter names without brackets and enable spectator validation
2026-09-17 18:15:52 +02:00
00aff9bf63
feat(api): add NormalizeQueryStringArrays middleware to support RFC and bracket query array formats
2026-09-17 18:15:52 +02:00
86584c5b94
fix(inco): resolve brand filter via REFP.ARTICLE_REF COD_MARQUE and align replicate tables
2026-09-17 18:10:19 +02:00
d63723a113
feat(inco): add description field to IncoShort projection and OpenAPI schema
2026-09-16 10:18:00 +02:00
d94f78dace
test(unit): update application and infra unit tests with Pagination VOs and GWT format
2026-09-15 12:49:03 +02:00
d96f903e1c
test(integration): adapt repository and directory integration tests to Pagination VOs
2026-09-15 12:49:01 +02:00
40519c4a2b
test(arch): update Shared architecture tests for Pagination VOs
2026-09-15 12:48:59 +02:00
16573cb30c
refactor(pagination): use PageNumber and PageSize value objects in http helpers and console commands
2026-09-15 12:48:55 +02:00
0c361c5ff7
feat(pagination): add PageNumber and PageSize value objects and update Pagination
2026-09-15 12:48:52 +02:00
e83a286e9b
test(arch): overhaul and complete architecture test suite across all layers
2026-09-14 19:13:41 +02:00
106d4467c4
feat(brands): add pagination caching, fast local resolution and resilient database fallback
2026-09-14 17:30:51 +02:00
bc6a603913
feat(brands): remove internal uuid from brand responses and query only by brandCode
2026-08-31 17:35:32 +02:00
7312289811
feat(employees): rename ArcadiaEmployeeId to SiRhMatricule and expose matricule in api responses
2026-08-31 17:29:18 +02:00
2606ac882e
feat(inco): mask internal allergen ids in api presentation responses
2026-08-31 17:23:02 +02:00
4434eb5757
feat(inco): rename identifiers to incoId/incoCompoId and resolve sellFamilly label
2026-08-31 17:16:38 +02:00
00f38b7d41
fix(employees): filter out invalid matricules and comments from Arcadia database
2026-08-31 16:32:11 +02:00
71f97b16e3
refactor(string): centralize string encoding and normalization in StringEncoder & StringHelper, normalize BrandName to titleCase
2026-08-31 15:36:16 +02:00
742da323aa
perf(brands): paginate ArcadiaBrandDirectory and BrandRepository with SQL limit/offset and cache warming
2026-08-31 12:37:16 +02:00
97a73a5e05
fix(brand): filter out comment tuples and enforce positive integer validation for ArcadiaId
2026-08-31 11:45:35 +02:00
54a199d4e0
refactor(string): extract transliterate to Shared\Helpers\StringHelper
2026-08-28 18:10:15 +02:00
b4f3c0bdb9
feat(health): dynamic schema conformity inspection from Migrator definitions and Oracle DUAL ping
2026-08-28 17:33:13 +02:00
46ab5e4325
feat(health): add Arcadia database conformity check with diff hashing and synchronous alerting
2026-08-28 14:12:33 +02:00
197aedbc5e
refactor(health): remove toArray from HealthCheckResult DTO and encapsulate serialization in HealthCheckResponse
2026-08-27 15:19:36 +02:00
403ea2c6c2
refactor: add health check feature within cli and job.
2026-08-27 14:39:59 +02:00
34b76cb397
test(feature): align feature and openapi tests with replicated Oracle tables
...
- Update tests to use factory static helpers and avoid hardcoded table/connection names
- Align test data columns with real replicated Oracle schema
- Remove obsolete duplicate IncoSheetsShowTest
2026-08-26 17:29:18 +02:00
1842223ddc
refactor(database): improve replicated factories, seeders, and config injection
...
- AbstractTableFactory delegates connection resolution without hardcoded config keys
- Enforce mandatory connection parameter on Migrator without Infra dependencies
- Inject ArcadiaStorageConfig, AppConfig, and HmacAuthConfig into services, seeders, and health checkers
- Enhance factories and seeders with helper methods (truncate, count, query, new)
- Clean up covers annotations on database seeders integration tests
2026-08-26 17:29:13 +02:00
cec8d1ea66
refactor(infra): replace Eloquent directory adapters with direct QueryBuilder adapters and mappers
...
- Replace Eloquent models for replicated Oracle tables with direct QueryBuilder directory adapters
- Bind ArcadiaEmployeeDirectory, ArcadiaIncoSheetDirectory, ArcadiaIncoShortSheetDirectory, ArcadiaIncoCompositionDirectory, and ArcadiaMarqueBrandDirectory
- Remove obsolete Eloquent directory classes and models
2026-08-26 17:29:08 +02:00
cf918ccd30
feat(infra): add mappers and parsers for replicated Arcadia Oracle tables
...
- Add IncoStringParser, IncoIngredientParser, IncoParser, and IncoCompositionParser
- Add ArcadiaBrandMapper, EmployeeMapper, IncoCompositionMapper, IncoShortMapper, and IncoMapper
- Add complete unit test suites for all parsers and mappers
2026-08-26 17:29:05 +02:00
f88694110d
refactor: cleanup fake arcadia tables used for development
2026-08-26 16:25:47 +02:00
361cf230e3
refactor: replicate and reproduce arcadia tables
2026-08-26 15:22:00 +02:00
06deb17236
chore: pint pass
2026-08-26 10:14:36 +02:00
a492e9823a
fix(queue): add explicit tries and timeout to SendClientSecurityAlertMail (F-2026-0007)
2026-08-26 10:11:59 +02:00
bc5303eb0a
fix(security): make nonce validation and consumption atomic via CacheRepository add (F-2026-0008)
2026-08-26 10:11:32 +02:00
18b83b6e67
perf(directory): memoize arcadia brand lookups to eliminate N+1 queries during INCO sheet hydration (F-2026-0003)
2026-08-26 10:11:26 +02:00
dd5bcdd351
fix(security): sanitize rate limiter client IP resolution to prevent header spoofing (F-2026-0001)
2026-08-26 10:11:21 +02:00
daa8d1e0fa
refactor(cache): implement graceful degradation for BrandCache
2026-08-25 08:26:58 +02:00
0766e9dc8f
refactor(repository): make entity deletion idempotent
2026-08-25 08:26:55 +02:00
3582a3928c
refactor(pagination): clamp out-of-bounds pagination values silently
2026-08-25 08:26:50 +02:00
e31767cfd0
refactor(brand): make ArcadiaId strictly string value extending EntityId
2026-08-24 21:45:04 +02:00
55576a6971
refactor(security): unify ClientDirectory reading methods into ClientRepository
2026-08-24 21:44:56 +02:00
cb97e6f591
refactor(ddd): introduce AggregateRoot and ReadModel interfaces extending Entity
2026-08-24 21:44:51 +02:00