feat(series): TagService.merge repoints series_page.series_tag_id

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-16 23:36:04 -04:00
parent d8e585a76e
commit a9e7ee9ba9
2 changed files with 29 additions and 0 deletions
+12
View File
@@ -307,6 +307,7 @@ class TagService:
await self._repoint_fandom_children(
source_id, target_id, source_kind
)
await self._repoint_series_pages(source_id, target_id)
alias_created = False
if keep_as_alias:
@@ -400,6 +401,17 @@ class TagService:
.values(canonical_tag_id=tgt)
)
async def _repoint_series_pages(self, src: int, tgt: int) -> None:
from ..models.series_page import SeriesPage
# image_id is UNIQUE across series_page and src != tgt, so an
# image in src's series cannot already be in tgt's — no collision.
await self.session.execute(
update(SeriesPage)
.where(SeriesPage.series_tag_id == src)
.values(series_tag_id=tgt)
)
async def _repoint_fandom_children(
self, src: int, tgt: int, src_kind: TagKind
) -> None: