Basdat/database/expired_item.sql
2025-12-20 00:01:08 +07:00

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';