tag-lifecycle: owner close (status closed, gating + page) + move (copy details to new tag, close source) + legacy ?productid= redirect — verified with real tags 6 & 17

This commit is contained in:
2026-08-10 11:36:11 +10:00
parent 77a9f803f2
commit 97cf0974a3
8 changed files with 123 additions and 10 deletions

View File

@@ -103,6 +103,10 @@ func (a *App) shouldAlert(ctx context.Context, tag db.Tag, scan db.Scan, hasLoc
if !tag.Phone.Valid {
return false, ""
}
// Closed or suspended tags never alert (page shows unavailable).
if tag.Status == "closed" || tag.Status == "suspended" {
return false, ""
}
// Customer pause (admin kill-switch): paused owner -> record only.
if tag.OwnerID.Valid {