|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to `lara-architect` will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [Unreleased] |
| 9 | + |
| 10 | +## [1.0.0] - 2026-07-21 |
| 11 | + |
| 12 | +### Added |
| 13 | + |
| 14 | +- **Architecture building blocks** |
| 15 | + - `BaseService` with transactional CRUD, lifecycle hooks (`created`, `updated`, `deleted`, `restored`, `forceDeleted`) and repository delegation. |
| 16 | + - `BaseRepository` with full CRUD, eager loading, pagination and `getBy` criteria queries. |
| 17 | + - `BaseAction` for single-purpose, transaction-wrapped operations. |
| 18 | + - `BaseData` DTO with array/request hydration, backed-enum support and `toArray()` serialization. |
| 19 | + - Contracts (`Repository`, `CrudService`, `Action`) for container binding and swappable implementations. |
| 20 | +- **Soft-delete aware operations** |
| 21 | + - `deleteMany()`, `deleteAll()`, `restore()`, `restoreAll()`, `forceDelete()` and `trashed()` on repositories and services. |
| 22 | + - `SoftDeletesNotEnabledException` thrown when soft-delete operations are used on models without the `SoftDeletes` trait. |
| 23 | +- **Query filters** |
| 24 | + - `QueryFilter` base class mapping request query parameters to filter methods. |
| 25 | + - `Filterable` model trait providing a `filter()` scope. |
| 26 | + - `filter()` method on repositories and services returning paginated, filtered results. |
| 27 | +- **Module generator** (`php artisan make:module`) |
| 28 | + - Architecture presets: `service-repository`, `actions`, and custom presets via config. |
| 29 | + - Field definition syntax (`--fields="title:string, status:enum, price:decimal:nullable"`) driving migrations, validation, casts, factories and DTOs. |
| 30 | + - Generators for model, migration, factory, service, repository, action, DTO, controller, form requests, API resources, enums and query filters. |
| 31 | + - Publishable, customizable stubs. |
| 32 | +- **HTTP layer** |
| 33 | + - `BaseFormRequest` with a consistent JSON validation error envelope. |
| 34 | + - `RespondsWithJson` controller trait (`respondSuccess`, `respondCreated`, `respondDeleted`, `respondError`). |
| 35 | +- **Model concerns**: `HasUuid` trait with configurable UUID column. |
| 36 | +- **Enum support**: string-backed enum generation wired into model casts, `Rule::enum()` validation, factories and DTO property types. |
| 37 | +- `architect:patterns` command listing registered generators and presets. |
| 38 | +- Support for Laravel 11, 12 and 13 (PHP 8.2 – 8.5, per framework requirements). |
| 39 | +- Full test suite (PHPUnit via Orchestra Testbench), PHPStan level 5 (Larastan) and Laravel Pint. |
| 40 | + |
| 41 | +[Unreleased]: https://github.com/karim-ashraf/lara-architect/compare/v1.0.0...HEAD |
| 42 | +[1.0.0]: https://github.com/karim-ashraf/lara-architect/releases/tag/v1.0.0 |
0 commit comments