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
d96f903e1c
test(integration): adapt repository and directory integration tests to Pagination VOs
2026-09-15 12:49:01 +02:00
106d4467c4
feat(brands): add pagination caching, fast local resolution and resilient database fallback
2026-09-14 17:30:51 +02:00
4434eb5757
feat(inco): rename identifiers to incoId/incoCompoId and resolve sellFamilly label
2026-08-31 17:16:38 +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
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
403ea2c6c2
refactor: add health check feature within cli and job.
2026-08-27 14:39:59 +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
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
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
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
5c49b2cc4f
feat(infra): attach HasUuidV7CreatedAt trait to Brand, ApiClient, and ClientAuditLog models
2026-08-21 16:12:01 +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
cc368c7102
feat(brand): add dedicated BrandCache service, event invalidation, and persist brand name locally
2026-08-21 11:27:32 +02:00
20ae9a2307
feat(event): implement TransactionalDomainEventDispatcher with post-commit release
2026-08-21 10:28:36 +02:00
9c2c109d51
feat(usecase): add Transactional interface and update use cases
...
- Implemented Transactional interface for use cases requiring database transactions.
- Updated CreateClient, RegenerateClientSecret, and SetClientStatus to implement Transactional.
- Modified LaravelExecutor to handle transactional use cases appropriately.
- Enhanced tests for LaravelExecutor to cover transactional behavior.
2026-08-21 09:38:29 +02:00
b26baaaf86
test(infra): add integration tests for EloquentBrandRepository, EloquentIncoSheetDirectory and EloquentIncoShortSheetDirectory
2026-08-20 18:16:42 +02:00
20ec692160
feat(infra): add Brand Eloquent models, migrations, casts, adapters and seeders
2026-08-20 17:35:42 +02:00
4d68a97889
feat(security): derive client createdAt from UUIDv7 and add HasTimestampIdentifier interface
2026-08-20 12:53:07 +02:00
9c28cf2903
refactor(database): add timestamps to ApiClient and Employee models
...
Updated ApiClient and Employee models to include created_at and updated_at fields for better tracking of records.
2026-08-20 12:08:15 +02:00
c8a46bb9b3
fix(shared): harmonize delete exception contracts on Repository and ClientRepository (LSP)
2026-08-20 09:48:10 +02:00
d3786aaed6
feat(console): add CreateClient command and enforce unique slug for ApiClient
2026-08-18 17:31:29 +02:00
43758922ad
feat(console): add ToggleClientStatus command and related logic
...
- Implemented command to toggle client status via console.
- Introduced SetClientStatus use case for managing client activation.
- Added presenters and views for command output.
- Created tests for command functionality and edge cases.
2026-08-18 16:56:15 +02:00
a771d8a5d1
refactor(application): remove obsolete Application/Shared namespace
2026-08-18 12:09:38 +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
1fdf7ea9cc
refactor(application): move usecases under Application\Arcadia\Usecase and NotFoundException to Application\Shared\Exceptions
2026-08-17 11:18:53 +02:00
e02f5f5c2a
refactor: introduce InvalidDateFormatException for DatesHelper
2026-08-17 09:43:34 +02:00
f667532ff7
refactor(domain): regroup Inco entities and Value Objects under Inco/ and Inco/Composition/
2026-08-14 15:38:10 +02:00
753456368c
style: format code for consistency and readability
...
Refactor code formatting for improved consistency across multiple files.
2026-08-14 11:50:26 +02:00
152ee2b5a2
feat(api): add IncoSheets feature with DDD clean architecture, tests & OpenAPI spec
...
- Use cases: FindAllIncoSheets & FindIncoSheet (filters, pagination, short projection)
- Presentation: controllers, FormRequests with scalar validation, DTOs (camelCase)
- Ports & Adapters: IncoSheetDirectory & EloquentIncoSheetDirectory
- Tests: Pest 4 unit, integration, OpenAPI spectator conformance, dynamic arch tests
- Docs: updated Bruno collection and OpenAPI spec
2026-08-14 11:33:05 +02:00
1d55dff5f4
feat(seeders): add IncoSheet and IncoCompo seeders
...
Implement seeders for IncoSheet and IncoCompo to populate the database with initial data.
2026-08-14 10:35:21 +02:00
53b0dd9f1e
feat(employees): implement filtering and sorting for employee retrieval
...
Added Filter and Sorter classes to handle employee filtering and sorting criteria. Updated FindAllEmployees use case to utilize these new classes for improved employee data retrieval.
2026-08-14 09:30:21 +02:00
6ba04fe009
feat(exceptions): add NotFoundException for entity handling
...
Introduces a NotFoundException to standardize error handling for missing entities.
2026-08-13 16:24:08 +02:00
58749030bf
feat(employees): add support for filtering by multiple site IDs
...
- Updated EmployeeFilter to accept an array of SiteId.
- Modified EloquentEmployeeDirectory to handle multiple site filters.
- Enhanced EmployeesIndexRequest to validate siteIds as an array.
- Added tests for siteIds filtering in EmployeesIndexTest and EmployeeOpenApiTest.
2026-08-13 15:30:53 +02:00
b64c1ef366
feat(employees): add filtering capabilities for employee retrieval
...
- Introduced EmployeeFilter value object for filtering criteria.
- Updated EmployeeDirectory and EloquentEmployeeDirectory to support filtering.
- Modified FindAllEmployees use case to accept filter input.
- Enhanced EmployeesIndexRequest to handle filter parameters.
- Added tests for filtering functionality in EmployeesIndexTest and EloquentEmployeeDirectoryTest.
2026-08-13 15:09:37 +02:00
b7f2de4f92
test(EloquentEmployeeDirectory): add integration tests for employee retrieval and date conversion
...
Includes tests for finding employees, handling null values, and date conversion.
2026-08-13 14:59:21 +02:00
6d77bc6332
test(DatesHelper): update date parsing logic and add fallback tests
...
Enhance date parsing in DatesHelper to correctly handle RFC3339 format.
Add tests for fallback scenarios with DateTimeImmutable.
2026-08-13 13:24:33 +02:00
8afc31c806
test(DatesHelper): update date regex and add instantiation test
...
- Fixed regex for inverted French date format.
- Added test to prevent direct instantiation of DatesHelper.
2026-08-13 13:11:55 +02:00
289140c630
refactor(DatesHelper): make constructor private and update comment
...
Updated the constructor of DatesHelper to be private and modified the comment to clarify its purpose as a static class.
2026-08-13 13:07:03 +02:00
52d0e6f0fd
test(ApiExceptionDispatcher): add integration tests for exception handling
...
Added integration tests for ApiExceptionDispatcher to ensure proper handling of exceptions
for various API request scenarios, including JSON acceptance and unversioned requests.
2026-08-13 12:34:44 +02:00
985fcedb04
test(WebExceptionRenderer): add tests for rendering exceptions
...
Add tests to verify the behavior of WebExceptionRenderer for NotFoundException and unhandled exceptions.
2026-08-13 12:18:22 +02:00