From 2063dffc09ad3747f87196435b79a367965ff900 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Thu, 11 Dec 2025 21:57:17 +0900 Subject: [PATCH] feat(repo): enhance MoveToArchive to compute new IDs for archived episodes --- backend/internal/repo/episode_repo.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/backend/internal/repo/episode_repo.go b/backend/internal/repo/episode_repo.go index 291fda9..92ae8e1 100644 --- a/backend/internal/repo/episode_repo.go +++ b/backend/internal/repo/episode_repo.go @@ -218,14 +218,19 @@ func (r *pgxEpisodeRepo) MoveToArchive(ctx context.Context, ids []int64) (episod } if !inserted { + var newID int64 + if err := tx.QueryRow(ctx, `SELECT COALESCE(MAX(id), 0) + 1 FROM current_archive`).Scan(&newID); err != nil { + log.Printf("archive compute new id failed for original id=%d: %v", item.id, err) + return res, err + } if err := tx.QueryRow(ctx, ` INSERT INTO current_archive ( id, ep_num, ep_title, season_name, start_time, playback_length, current_ep, date_created ) - VALUES (nextval(pg_get_serial_sequence('current','id')), $1, $2, $3, $4, $5, $6, $7) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING id - `, item.epNum, item.epTitle, item.seasonName, item.startTime, item.playback, item.currentEp, item.dateCreated).Scan(&archivedID); err != nil { - log.Printf("archive fallback insert failed for original id=%d: %v", item.id, err) + `, newID, item.epNum, item.epTitle, item.seasonName, item.startTime, item.playback, item.currentEp, item.dateCreated).Scan(&archivedID); err != nil { + log.Printf("archive fallback insert failed for original id=%d using new id=%d: %v", item.id, newID, err) return res, err } }