feat: Migrate article_save and article_delete to Domain Architecture

Move article save/delete logic from monolithic factory to ArticleRepository
with DI-based controller actions, following the established refactoring pattern.

- ArticleRepository: add save() with 9 private helpers, archive() method
- ArticlesController: add save() and delete() actions with DI
- Factory methods delegate to repository (backward compatibility)
- Router: add article_save/article_delete action mappings
- Old controls methods marked @deprecated
- 59 tests, 123 assertions passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-06 19:52:22 +01:00
parent 6c21b835da
commit efd93dede3
9 changed files with 677 additions and 291 deletions

View File

@@ -246,10 +246,27 @@ tests/
│ └── ProductArchiveControllerTest.php # 6 testów
└── Integration/
```
**Łącznie: 50 tests, 95 assertions**
**Łącznie: 59 tests, 123 assertions**
## Ostatnie modyfikacje
### 2026-02-06: Migracja Articles::article_delete do DI (ver. 0.245)
- **UPDATE:** `Domain\Article\ArticleRepository` - dodano `archive()` (ustawia status = -1)
- **UPDATE:** `admin\Controllers\ArticlesController` - nowa akcja `delete()` z DI
- **UPDATE:** Router `admin\Site` - dodano `'article_delete' => 'delete'` do `$actionMap`
- **UPDATE:** `admin\factory\Articles::articles_set_archive()` deleguje do `ArticleRepository::archive()`
- **UPDATE:** `admin\controls\Articles::article_delete()` oznaczone `@deprecated`
- Testy: 59 tests, 123 assertions
### 2026-02-06: Migracja Articles::article_save do DI (ver. 0.244)
- **UPDATE:** `Domain\Article\ArticleRepository` - dodano `save()` + prywatne helpery (`buildArticleRow`, `buildLangRow`, `saveTranslations`, `savePages`, `assignTempFiles`, `assignTempImages`, `deleteMarkedFiles`, `deleteMarkedImages`, `maxPageOrder`)
- **UPDATE:** `admin\Controllers\ArticlesController` - nowa akcja `save()` z DI
- **UPDATE:** Router `admin\Site` - dodano `'article_save' => 'save'` do `$actionMap`
- **UPDATE:** `admin\factory\Articles::article_save()` deleguje do `ArticleRepository::save()` (backward compatibility)
- **UPDATE:** `admin\controls\Articles::article_save()` oznaczone `@deprecated`
- **UPDATE:** `tests/bootstrap.php` - dodano stub `S::seo()`
- Testy: 57 tests, 119 assertions
### 2026-02-06: Articles cleanup moved to repository (ver. 0.243)
- **UPDATE:** `Domain\Article\ArticleRepository` - added `deleteNonassignedImages()` and `deleteNonassignedFiles()`
- **UPDATE:** `admin\Controllers\ArticlesController::edit()` uses repository cleanup methods