Commit graph

32 commits

Author SHA1 Message Date
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
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
4302b89d88
fix(arcadiaId): update pattern to allow larger numeric IDs
Updated the regex pattern for ArcadiaId to accept larger numeric values.
2026-08-31 11:27:32 +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
cb97e6f591
refactor(ddd): introduce AggregateRoot and ReadModel interfaces extending Entity 2026-08-24 21:44:51 +02:00
709568f1ed feat(brand): handle on-demand brand renaming with BrandRenamed event and historical preservation 2026-08-21 11:36:37 +02:00
62289d2222 refactor(domain): introduce Domain Builders for IncoComposition and IncoSheet 2026-08-21 10:13:43 +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
a42a79861d
feat(domain): add Brand entity, value objects, ports, and generator & resolver domain services 2026-08-20 17:35:38 +02:00
6be00bb21e
refactor(domain): make read-only entity constructors private and introduce hydrate static methods 2026-08-20 15:05:33 +02:00
fc368cdc46 refactor(shared): reorganize DDD core building blocks into sub-namespaces (Model, Port, Event) 2026-08-17 10:31:28 +02:00
3d4302b49c
refactor: adopt PHP 8.4 array_any for filter invariants 2026-08-17 09:42:39 +02:00
59ceab8185
refactor: clean up redundant readonly property modifiers and harmonize EntityId constructors 2026-08-17 09:42:21 +02:00
0c25d663f8
refactor: add explicit types to class constants (PHP 8.3+) 2026-08-17 09:41:10 +02:00
bfe0b0010c
feat(IncoSheets): introduce IncoShortSheet entity and IncoShortSheetDirectory with SQL select optimization and search pagination 2026-08-14 16:15:49 +02:00
91114cb67b
feat(inco-compositions): add IncoCompositionShow feature
- Implemented IncoCompositionShowController to handle requests for inco composition details.
- Created IncoCompositionDto for response data structure.
- Added IncoCompositionShowRequest for request validation.
- Developed IncoCompositionShowResponse for formatting API responses.
- Introduced IncoCompositionShowPresenter and IncoCompositionShowView for presentation logic.
- Added tests for IncoCompositionShow feature and OpenAPI conformance.
2026-08-14 15:56:58 +02:00
f667532ff7
refactor(domain): regroup Inco entities and Value Objects under Inco/ and Inco/Composition/ 2026-08-14 15:38:10 +02:00
4d24e5c3fa
feat(IncoSheets): add search functionality for inco sheets
- Introduced IncoIdQuery value object for validating search queries.
- Implemented search method in IncoSheetDirectory and EloquentIncoSheetDirectory.
- Created IncoSheetsSearchController to handle search requests.
- Added IncoSheetsSearchRequest for validating incoming search parameters.
- Developed IncoSheetsSearchResponse for formatting search results.
- Added tests for search functionality in IncoSheetsSearchTest.
- Updated OpenAPI tests to validate search endpoint.
2026-08-14 15:06:54 +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
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
0111ee2ac4
refactor(Employees): remove BaseEnum trait and clean up EmployeeSortColumn
This change simplifies the EmployeeSortColumn enum by removing the BaseEnum trait,
which is no longer needed.
2026-08-13 11:52:13 +02:00
554e4002df
refactor(api): update Employee request handling and remove toInput method
Refactor EmployeeShowRequest and EmployeesIndexRequest to improve clarity and maintainability.
2026-08-13 09:55:27 +02:00
34169a9feb
feat(api): implement tracer bullet for employees and OpenAPI specification 2026-08-12 15:45:29 +02:00