refactor(manga): merge ChapterRepositoryInterface into MangaRepositoryInterface + pagesDirectory
- Supprime ChapterRepositoryInterface du domaine Manga (et ses implémentations LegacyChapterRepository et InMemoryChapterRepository) - Déplace toutes les méthodes chapter vers MangaRepositoryInterface avec nommage explicite (findChapterById, findVisibleChapterById, updateChapter, deleteChapter, etc.) - Remplace cbzPath par pagesDirectory + pageCount dans le modèle Chapter (transition : toChapterDomain conserve un fallback cbzPath pour les données existantes, updateChapter synchronise les deux colonnes jusqu'à la Phase 4) - Ajoute la migration Doctrine (pages_directory, page_count sur la table chapter) - Met à jour tous les handlers, listeners, query handlers et state providers du domaine Manga pour injecter uniquement MangaRepositoryInterface - Adapte les tests unitaires et InMemoryMangaRepository avec les nouvelles méthodes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
dae215dd3d
commit
c50f1638ee
42
migrations/Version20260309165048.php
Normal file
42
migrations/Version20260309165048.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace DoctrineMigrations;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Auto-generated Migration: Please modify to your needs!
|
||||
*/
|
||||
final class Version20260309165048 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
// this up() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('ALTER TABLE chapter ADD pages_directory VARCHAR(255) DEFAULT NULL');
|
||||
$this->addSql('ALTER TABLE chapter ADD page_count INT DEFAULT 0 NOT NULL');
|
||||
$this->addSql('DROP INDEX idx_available_at');
|
||||
$this->addSql('DROP INDEX idx_delivered_at');
|
||||
$this->addSql('DROP INDEX idx_queue_available');
|
||||
$this->addSql('DROP INDEX idx_queue_name');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->addSql('CREATE SCHEMA public');
|
||||
$this->addSql('CREATE INDEX idx_available_at ON messenger_messages (available_at)');
|
||||
$this->addSql('CREATE INDEX idx_delivered_at ON messenger_messages (delivered_at)');
|
||||
$this->addSql('CREATE INDEX idx_queue_available ON messenger_messages (queue_name, available_at)');
|
||||
$this->addSql('CREATE INDEX idx_queue_name ON messenger_messages (queue_name)');
|
||||
$this->addSql('ALTER TABLE chapter DROP pages_directory');
|
||||
$this->addSql('ALTER TABLE chapter DROP page_count');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user