31 lines
993 B
SQL
31 lines
993 B
SQL
START TRANSACTION;
|
|
|
|
-- 1. Pindahkan item yang sudah kadaluarsa ke tabel archives
|
|
INSERT INTO archives (
|
|
item_id, name, category_id, photo_url, location,
|
|
description, date_found, status, reporter_name,
|
|
reporter_contact, archived_reason, archived_at
|
|
)
|
|
SELECT
|
|
id, name, category_id, photo_url, location,
|
|
description, date_found, 'expired', reporter_name,
|
|
reporter_contact, 'expired', NOW()
|
|
FROM items
|
|
WHERE expires_at < NOW()
|
|
AND status = 'unclaimed'
|
|
AND deleted_at IS NULL
|
|
-- Pastikan item ini belum ada di archives untuk mencegah duplikat
|
|
AND NOT EXISTS (SELECT 1 FROM archives WHERE archives.item_id = items.id);
|
|
|
|
-- 2. Update status di tabel items menjadi 'expired'
|
|
UPDATE items
|
|
SET status = 'expired'
|
|
WHERE expires_at < NOW()
|
|
AND status = 'unclaimed'
|
|
AND deleted_at IS NULL;
|
|
|
|
COMMIT;
|
|
|
|
-- 3. Cek Hasilnya
|
|
SELECT id, name, status, expires_at FROM items WHERE status = 'expired';
|
|
SELECT * FROM archives WHERE archived_reason = 'expired'; |