Commit graph

92 commits

Author SHA1 Message Date
5e4e2f5faf fix(security): lock HMAC dev bypass strictly to false in production 2026-08-21 10:14:55 +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
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
aca627ff78 test(presentation): add missing unit tests for API and Console presenters 2026-08-20 18:22:20 +02:00
b26baaaf86
test(infra): add integration tests for EloquentBrandRepository, EloquentIncoSheetDirectory and EloquentIncoShortSheetDirectory 2026-08-20 18:16:42 +02:00
8f933db9fa
feat(inco): migrate to IncoBrand VO, BrandResolver domain service and BrandCode filtering 2026-08-20 18:16:31 +02:00
1f8f03e6d8
feat(brand): add Brand use cases, API v1 endpoints, console command, OpenAPI spec and Bruno collection 2026-08-20 17:35:47 +02:00
20ec692160
feat(infra): add Brand Eloquent models, migrations, casts, adapters and seeders 2026-08-20 17:35:42 +02:00
a42a79861d
feat(domain): add Brand entity, value objects, ports, and generator & resolver domain services 2026-08-20 17:35:38 +02:00
8cfd5fbe0f
refactor(console): scope client artisan commands under arcadia prefix 2026-08-20 17:35:31 +02:00
6f35e031fa
refactor(presentation): remove authorize method from FormRequests in favor of middleware filters 2026-08-20 17:35:26 +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
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
2bbfc7fa08
fix(shared): prevent cross-type equality in EntityId::equals (LSP) 2026-08-20 09:45:54 +02:00
98356465d5
fix(infra): align since filter in InMemoryEmployeeDirectory with Eloquent adapter (LSP) 2026-08-20 09:45:11 +02:00
341b57c3bf
feat(console): migrate interactive console commands to Laravel Prompts 2026-08-18 18:46:31 +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
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
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
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
53a5990c3a
test(arch): make CodingStandardsTest standalone without container dependency 2026-08-17 09:44:10 +02:00
e02f5f5c2a
refactor: introduce InvalidDateFormatException for DatesHelper 2026-08-17 09:43:34 +02:00
2b7a8b4b99
test(arch): add architecture test suite for Shared layer 2026-08-17 09:43:02 +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
7c0edb9507
test(arch): forbid Symfony framework and Laravel helpers in Application layer 2026-08-17 09:22:18 +02:00
b0cd8d25a3
test(ApiV1Middlewares): add feature tests for middlewares behavior
Includes tests for ETag handling and content negotiation.
2026-08-14 16:47:58 +02:00
8f82f86966
refactor(application): unify filter and sorter VOs between Application and Domain layers 2026-08-14 16:28:44 +02:00
2900c85b33
test(IncoSheets): add test for PaginatedShortIncoSheet instantiation
Added a test to verify the correct instantiation of PaginatedShortIncoSheet
from the IncoShortSheet domain entity.
2026-08-14 16:26:08 +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
7383c3e01f
test(IncoSheets): update tests for short form inco sheets response
Enhance tests to verify the structure of inco sheets when the short parameter is true or numeric 1.
2026-08-14 15:57:58 +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
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
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