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
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
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
7312289811
feat(employees): rename ArcadiaEmployeeId to SiRhMatricule and expose matricule in api responses
2026-08-31 17:29:18 +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
46ab5e4325
feat(health): add Arcadia database conformity check with diff hashing and synchronous alerting
2026-08-28 14:12:33 +02:00
403ea2c6c2
refactor: add health check feature within cli and job.
2026-08-27 14:39:59 +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
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
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
e31767cfd0
refactor(brand): make ArcadiaId strictly string value extending EntityId
2026-08-24 21:45:04 +02:00
6d63e68908
feat(infra): add HasUuidV7CreatedAt trait to derive created_at from UUIDv7
2026-08-21 16:11:56 +02:00
37bd6cdbdd
feat(shared): implement PSR-20 Clock contract, Utc facade, and RFC3339 normalization
2026-08-21 15:45:32 +02:00
1df3a27c98
feat(config): introduce typed configuration objects, dedicated value objects and enforce global class referencing
2026-08-21 15:01:36 +02:00
a82a1558bd
feat(security): add arcadia:security:audit-logs CLI command with CSV export and typed audit details
2026-08-21 14:30:20 +02:00
61073f4fcd
feat(security): add database audit logging and asynchronous markdown email alerts for api client actions
2026-08-21 12:07:13 +02:00
709568f1ed
feat(brand): handle on-demand brand renaming with BrandRenamed event and historical preservation
2026-08-21 11:36:37 +02:00
cc368c7102
feat(brand): add dedicated BrandCache service, event invalidation, and persist brand name locally
2026-08-21 11:27:32 +02:00
dc83df4105
feat(security): add audit log listeners and tests for client secret and status events
2026-08-21 11:09:25 +02:00
abe60df95f
feat(event): implement BrandCreated event and listeners
...
- Added BrandCreated event to encapsulate brand creation details.
- Created LogBrandCreated listener to log brand creation events.
- Updated BrandResolver to dispatch BrandCreated event upon new brand creation.
- Introduced EventServiceProvider to register event listeners.
- Added unit tests for BrandCreated event and LogBrandCreated listener.
2026-08-21 09:45:06 +02:00
8f933db9fa
feat(inco): migrate to IncoBrand VO, BrandResolver domain service and BrandCode filtering
2026-08-20 18:16:31 +02:00
20ec692160
feat(infra): add Brand Eloquent models, migrations, casts, adapters and seeders
2026-08-20 17:35:42 +02:00
6be00bb21e
refactor(domain): make read-only entity constructors private and introduce hydrate static methods
2026-08-20 15:05:33 +02:00
4d68a97889
feat(security): derive client createdAt from UUIDv7 and add HasTimestampIdentifier interface
2026-08-20 12:53:07 +02:00
c8a46bb9b3
fix(shared): harmonize delete exception contracts on Repository and ClientRepository (LSP)
2026-08-20 09:48:10 +02:00
98356465d5
fix(infra): align since filter in InMemoryEmployeeDirectory with Eloquent adapter (LSP)
2026-08-20 09:45:11 +02:00
e7904682b6
feat(infra): add ApiClient Eloquent model, repository adapter, security services, migrations, seeders and tests
2026-08-18 12:03:29 +02:00
5c10d51fba
feat(infra): add in-memory directory and repository doubles with unit tests and refactor usecase tests to pure black-box
2026-08-18 11:54:47 +02:00
13091c4ec6
build: require php ^8.5 and remove league/uri dependency
2026-08-17 09:32:49 +02:00
ac552a4530
refactor: adopt native PHP 8.5 \Uri\Rfc3986\Uri for request URIs and pagination links
2026-08-17 09:30:21 +02:00
05ececd879
feat(RequestHelper): add pagination and URI conversion methods
...
Implement pagination logic and methods to convert request URLs to League URI instances.
2026-08-13 14:52:51 +02:00