Commit graph

75 commits

Author SHA1 Message Date
341b57c3bf
feat(console): migrate interactive console commands to Laravel Prompts 2026-08-18 18:46:31 +02:00
7f57f16425
refactor(console): extract private methods for input extraction in command handle methods 2026-08-18 18:26:46 +02:00
90c87899a2
refactor(console): encapsulate interactive search and autocompletion in ClientConsoleResolver 2026-08-18 18:25:08 +02:00
2d46f774b3
fix(quality): resolve PHP_CodeSniffer warnings and errors 2026-08-18 18:25:04 +02:00
bad76036f1
feat(security): add FindClient use case with Paginated search and anticipate in console commands 2026-08-18 17:45:42 +02:00
e3462241d3
feat(console): add RegenerateClientSecret command 2026-08-18 17:37:44 +02:00
d3786aaed6
feat(console): add CreateClient command and enforce unique slug for ApiClient 2026-08-18 17:31:29 +02:00
0a5603330a
feat(console): add CreateClientCommand and related classes
Implement an interactive command to create a new API client, including input validation and confirmation steps.
Add presenter and view classes to handle the output of the client creation process.
2026-08-18 17:13:55 +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
2ac8578fe0
feat(console): add ListClients command and related presenters
- Implemented ListClientsCommand to list API clients with pagination.
- Created ClientRow, ListClientsPresenter, and ListClientsView for structured output.
- Added tests for ListClientsCommand to ensure correct functionality.
2026-08-18 12:50:55 +02:00
af416b1b7c
refactor(presentation): move transformation logic from views to presenters 2026-08-18 12:43:01 +02:00
a771d8a5d1
refactor(application): remove obsolete Application/Shared namespace 2026-08-18 12:09:38 +02:00
e7f5f71005
feat(arcadia): add dedicated NotFound exceptions for Employee, IncoSheet and IncoComposition 2026-08-18 12:09:35 +02:00
726375c00d
feat(presentation): implement HMAC authentication middleware, security providers and feature tests 2026-08-18 12:03:32 +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
fa86b9c4e6
feat(security): implement security bounded context entities, value objects, ports, use cases and unit tests 2026-08-18 12:03:25 +02:00
909f7abaa4
feat(shared): add security interfaces, user details contracts and UUID helper 2026-08-18 12:03:22 +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
1dcf0a8cdf
refactor(usecase): specify concrete Input and Output types in usecase docblocks and refine builder generic inference 2026-08-18 11:34:30 +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
fc368cdc46 refactor(shared): reorganize DDD core building blocks into sub-namespaces (Model, Port, Event) 2026-08-17 10:31:28 +02:00
8ce012d7f7
refactor(models): update Carbon references to Illuminate\Support\Carbon
Updated property type hints in Employee, IncoCompo, and IncoSheet models to use Illuminate\Support\Carbon for consistency.
2026-08-17 09:49:52 +02:00
e02f5f5c2a
refactor: introduce InvalidDateFormatException for DatesHelper 2026-08-17 09:43:34 +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
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
0a1d56fc69
feat(middlewares): add EnsureApiV1AcceptsJson and SetApiV1Etag middlewares
Introduce new middlewares to enforce JSON acceptance and manage ETag headers for API responses.
2026-08-14 16:47:52 +02:00
8f82f86966
refactor(application): unify filter and sorter VOs between Application and Domain layers 2026-08-14 16:28:44 +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
cce81c1a85
style: apply code formatting and docblock fixes 2026-08-14 16:01:34 +02:00
afdde63d9f
feat(IncoSheets): support short parameter in FindAll and Search usecases 2026-08-14 16:01:31 +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
07559b87e5
refactor(request): simplify brands filtering logic
Streamlined the filtering of brands in the IncoSheetsIndexRequest.
2026-08-14 12:18:55 +02:00
68de1fd224
refactor(dto): simplify toArray method in IncoSheetDto
Removed unnecessary comments and streamlined the mapping of allergens and additives.
2026-08-14 12:15:52 +02:00
195227a443
style(dto): update parameter formatting in DTO constructors
style(dto): simplify toArray method by removing unnecessary variable assignment
2026-08-14 12:13:11 +02:00
cbf1a4ce9b
style: update docblock for parameter formatting 2026-08-14 12:10:20 +02:00
37ecd9faa1
feat(dto): add DTOs for IncoSheet components
- Introduced AdditiveDto, AllegationsDto, AllergenDto, BrandDto, NutriscoreDto, PortionsDto, StorageConditionDto, and WeightDto.
- These DTOs facilitate structured data handling for IncoSheet components.
2026-08-14 12:07:04 +02:00
70375f8139
feat(dto): implement PaginationDto for pagination metadata
Added PaginationDto to handle pagination details and links for API responses.
Updated related response classes to utilize the new PaginationDto.
2026-08-14 12:02:13 +02:00
2cc333f1df
feat(middlewares): add TransformApiV1Response middleware
This middleware transforms API responses for version 1.
2026-08-14 11:51:33 +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
7658483863
feat(api): implement API response transformation middleware
- Added TransformApiV1Response middleware to handle API responses.
- Updated Employee and IncoSheets controllers to return ApiResponse.
- Refactored API routes to use new middleware for v1.
2026-08-14 11:50:12 +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