202 lines
13 KiB
SQL
202 lines
13 KiB
SQL
-- Lost & Found Database Seed Data
|
|
-- MySQL/MariaDB Database
|
|
|
|
SET NAMES utf8mb4;
|
|
SET CHARACTER SET utf8mb4;
|
|
SET FOREIGN_KEY_CHECKS = 0;
|
|
|
|
-- ============================================
|
|
-- CLEAR EXISTING DATA (Optional - untuk re-seed)
|
|
-- ============================================
|
|
-- TRUNCATE TABLE notifications;
|
|
-- TRUNCATE TABLE revision_logs;
|
|
-- TRUNCATE TABLE match_results;
|
|
-- TRUNCATE TABLE claim_verifications;
|
|
-- TRUNCATE TABLE audit_logs;
|
|
-- TRUNCATE TABLE archives;
|
|
-- TRUNCATE TABLE claims;
|
|
-- TRUNCATE TABLE items;
|
|
-- TRUNCATE TABLE lost_items;
|
|
-- TRUNCATE TABLE categories;
|
|
-- TRUNCATE TABLE users;
|
|
-- TRUNCATE TABLE roles;
|
|
|
|
-- ============================================
|
|
-- SEED ROLES
|
|
-- ============================================
|
|
INSERT INTO roles (name, description) VALUES
|
|
('admin', 'Administrator with full access'),
|
|
('manager', 'Manager/Cleaning Service - can verify claims'),
|
|
('user', 'Regular user/student');
|
|
|
|
-- ============================================
|
|
-- SEED CATEGORIES
|
|
-- ============================================
|
|
INSERT INTO categories (name, slug, description) VALUES
|
|
('Pakaian', 'pakaian', 'Jaket, baju, celana, dll'),
|
|
('Alat Makan', 'alat_makan', 'Botol minum, lunchbox, dll'),
|
|
('Aksesoris', 'aksesoris', 'Jam tangan, gelang, kacamata, dll'),
|
|
('Elektronik', 'elektronik', 'Kalkulator, mouse, headset, charger, dll'),
|
|
('Alat Tulis', 'alat_tulis', 'Buku, pulpen, tipe-x, dll'),
|
|
('Lainnya', 'lainnya', 'Kategori lainnya');
|
|
|
|
-- ============================================
|
|
-- SEED USERS
|
|
-- Password untuk semua user: "password123"
|
|
-- Hash bcrypt: $2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi
|
|
-- ============================================
|
|
|
|
-- Admin User
|
|
INSERT INTO users (name, email, password, nrp, phone, role_id, status) VALUES
|
|
('Admin System', 'admin@lostandfound.com', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '1234567890', '081234567890', 1, 'active');
|
|
|
|
-- Manager Users
|
|
INSERT INTO users (name, email, password, nrp, phone, role_id, status) VALUES
|
|
('Pak Budi', 'manager1@lostandfound.com', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '2234567890', '081234567891', 2, 'active'),
|
|
('Bu Siti', 'manager2@lostandfound.com', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '2234567891', '081234567892', 2, 'active');
|
|
|
|
-- Regular Users (Students)
|
|
INSERT INTO users (name, email, password, nrp, phone, role_id, status) VALUES
|
|
('Ahmad Rizki', 'ahmad@student.com', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '5025211001', '081234567893', 3, 'active'),
|
|
('Siti Nurhaliza', 'siti@student.com', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '5025211002', '081234567894', 3, 'active'),
|
|
('Budi Santoso', 'budi@student.com', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '5025211003', '081234567895', 3, 'active'),
|
|
('Dewi Lestari', 'dewi@student.com', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '5025211004', '081234567896', 3, 'active'),
|
|
('Eko Prasetyo', 'eko@student.com', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '5025211005', '081234567897', 3, 'active');
|
|
|
|
-- ============================================
|
|
-- SEED ITEMS (Barang Ditemukan)
|
|
-- ============================================
|
|
INSERT INTO items (name, category_id, photo_url, location, description, date_found, status, reporter_id, reporter_name, reporter_contact, expires_at) VALUES
|
|
-- Pakaian
|
|
('Jaket Hitam Nike', 1, '', 'Gedung A lantai 2', 'Jaket hitam merk Nike ukuran M, ada logo putih di dada kiri, resleting berwarna silver', '2024-01-15 09:30:00', 'unclaimed', 2, 'Pak Budi', '081234567891', '2024-04-15 09:30:00'),
|
|
('Sweater Abu-abu', 1, '', 'Perpustakaan', 'Sweater abu-abu polos, ada tulisan "ITS" di punggung dengan huruf biru', '2024-01-18 14:20:00', 'unclaimed', 3, 'Bu Siti', '081234567892', '2024-04-18 14:20:00'),
|
|
|
|
-- Alat Makan
|
|
('Botol Minum Tupperware Biru', 2, '', 'Kantin Utama', 'Botol minum tupperware warna biru tua, ada stiker nama "RARA" di samping, tutup warna putih', '2024-01-20 12:00:00', 'unclaimed', 2, 'Pak Budi', '081234567891', '2024-04-20 12:00:00'),
|
|
('Lunchbox Pink', 2, '', 'Gedung B lantai 1', 'Kotak makan plastik warna pink dengan 2 sekat, ada gambar Hello Kitty di tutup', '2024-01-22 11:30:00', 'unclaimed', 3, 'Bu Siti', '081234567892', '2024-04-22 11:30:00'),
|
|
|
|
-- Elektronik
|
|
('Kalkulator Casio FX-991ID Plus', 4, '', 'Ruang Kelas C101', 'Kalkulator scientific Casio FX-991ID Plus, warna hitam, ada goresan kecil di layar', '2024-01-25 08:15:00', 'unclaimed', 2, 'Pak Budi', '081234567891', '2024-04-25 08:15:00'),
|
|
('Mouse Wireless Logitech', 4, '', 'Lab Komputer', 'Mouse wireless Logitech M185, warna merah, tidak ada baterai dan receiver USB', '2024-01-28 15:45:00', 'unclaimed', 3, 'Bu Siti', '081234567892', '2024-04-28 15:45:00'),
|
|
('Charger Laptop HP', 4, '', 'Perpustakaan meja 15', 'Charger laptop HP original 65W, kabel agak kusut, ujung konektor bulat', '2024-02-01 10:20:00', 'unclaimed', 2, 'Pak Budi', '081234567891', '2024-05-01 10:20:00'),
|
|
|
|
-- Aksesoris
|
|
('Jam Tangan Casio G-Shock', 3, '', 'Toilet Gedung A', 'Jam tangan Casio G-Shock warna hitam dengan strip orange, tali karet, ada goresan di layar', '2024-02-03 13:00:00', 'unclaimed', 3, 'Bu Siti', '081234567892', '2024-05-03 13:00:00'),
|
|
('Kacamata Minus', 3, '', 'Masjid Kampus', 'Kacamata minus frame hitam persegi, lensa agak tebal, ada case warna coklat', '2024-02-05 16:30:00', 'unclaimed', 2, 'Pak Budi', '081234567891', '2024-05-05 16:30:00'),
|
|
|
|
-- Alat Tulis
|
|
('Buku Kalkulus', 5, '', 'Gedung C lantai 3', 'Buku Kalkulus karangan Purcell edisi 9, sampul biru, ada coretan nama di halaman pertama (nama dicoret)', '2024-02-08 09:00:00', 'unclaimed', 3, 'Bu Siti', '081234567892', '2024-05-08 09:00:00'),
|
|
('Pensil Mekanik Rotring', 5, '', 'Studio Gambar', 'Pensil mekanik Rotring Rapid Pro 0.5mm warna silver, agak berat, ada penyok kecil di badan', '2024-02-10 14:45:00', 'unclaimed', 2, 'Pak Budi', '081234567891', '2024-05-10 14:45:00');
|
|
|
|
-- ============================================
|
|
-- SEED LOST_ITEMS (Barang Hilang)
|
|
-- ============================================
|
|
INSERT INTO lost_items (user_id, name, category_id, color, location, description, date_lost, status) VALUES
|
|
-- User Ahmad
|
|
(4, 'Jaket Hitam', 1, 'Hitam', 'Gedung A', 'Jaket hitam merk Nike ukuran M dengan logo putih di dada', '2024-01-15 08:00:00', 'active'),
|
|
(4, 'Kalkulator Casio Scientific', 4, 'Hitam', 'Ruang Kelas', 'Kalkulator scientific Casio FX-991ID Plus warna hitam', '2024-01-25 07:00:00', 'active'),
|
|
|
|
-- User Siti
|
|
(5, 'Botol Minum Biru', 2, 'Biru', 'Kantin', 'Botol tupperware biru dengan stiker nama RARA', '2024-01-20 11:00:00', 'active'),
|
|
(5, 'Jam Tangan Casio', 3, 'Hitam', 'Toilet', 'Jam tangan G-Shock hitam dengan strip orange', '2024-02-03 12:00:00', 'active'),
|
|
|
|
-- User Budi
|
|
(6, 'Mouse Wireless', 4, 'Merah', 'Lab Komputer', 'Mouse wireless Logitech warna merah tanpa receiver', '2024-01-28 14:00:00', 'active'),
|
|
|
|
-- User Dewi
|
|
(7, 'Buku Kalkulus', 5, 'Biru', 'Gedung C', 'Buku Kalkulus Purcell edisi 9 sampul biru', '2024-02-08 08:00:00', 'active'),
|
|
|
|
-- User Eko
|
|
(8, 'Kacamata Minus', 3, 'Hitam', 'Masjid', 'Kacamata frame hitam persegi dengan case coklat', '2024-02-05 15:00:00', 'active');
|
|
|
|
-- ============================================
|
|
-- SEED CLAIMS (Klaim Barang)
|
|
-- ============================================
|
|
INSERT INTO claims (item_id, user_id, description, proof_url, contact, status, notes, verified_at, verified_by) VALUES
|
|
-- Claim pending (belum diverifikasi)
|
|
(1, 4, 'Jaket Nike hitam ukuran M, ada logo putih di dada kiri, resleting silver', '', '081234567893', 'pending', NULL, NULL, NULL),
|
|
(3, 5, 'Botol tupperware biru dengan stiker nama RARA di samping, tutup putih', '', '081234567894', 'pending', NULL, NULL, NULL),
|
|
|
|
-- Claim yang sudah approved
|
|
(5, 4, 'Kalkulator Casio FX-991ID Plus warna hitam, ada goresan kecil di layar', '', '081234567893', 'approved', 'Deskripsi cocok, barang diserahkan', DATE_SUB(NOW(), INTERVAL 2 DAY), 2);
|
|
|
|
-- ============================================
|
|
-- SEED CLAIM_VERIFICATIONS
|
|
-- ============================================
|
|
INSERT INTO claim_verifications (claim_id, similarity_score, matched_keywords, verification_notes, is_auto_matched) VALUES
|
|
(1, 85.50, '["jaket", "nike", "hitam", "logo", "putih", "resleting", "silver"]', 'High similarity detected', FALSE),
|
|
(2, 92.30, '["botol", "tupperware", "biru", "stiker", "rara", "tutup", "putih"]', 'Very high similarity - likely owner', FALSE),
|
|
(3, 88.70, '["kalkulator", "casio", "hitam", "goresan", "layar"]', 'Verified and approved', FALSE);
|
|
|
|
-- ============================================
|
|
-- SEED MATCH_RESULTS (Auto-Matching)
|
|
-- ============================================
|
|
INSERT INTO match_results (lost_item_id, item_id, similarity_score, matched_fields, matched_at, is_notified) VALUES
|
|
(1, 1, 87.50, '{"name": 85, "category": 100, "description": 90}', '2024-01-15 10:00:00', TRUE),
|
|
(2, 5, 89.20, '{"name": 88, "category": 100, "description": 91}', '2024-01-25 09:00:00', TRUE),
|
|
(3, 3, 91.80, '{"name": 90, "category": 100, "color": 100, "description": 89}', '2024-01-20 13:00:00', TRUE),
|
|
(4, 8, 86.40, '{"name": 82, "category": 100, "color": 100, "description": 85}', '2024-02-03 14:00:00', TRUE),
|
|
(5, 6, 84.60, '{"name": 80, "category": 100, "color": 100, "description": 88}', '2024-01-28 16:00:00', FALSE);
|
|
|
|
-- ============================================
|
|
-- SEED NOTIFICATIONS
|
|
-- ============================================
|
|
INSERT INTO notifications (user_id, type, title, message, entity_type, entity_id, is_read, read_at) VALUES
|
|
-- Notifikasi match ditemukan
|
|
(4, 'match_found', 'Barang yang Mirip Ditemukan!', 'Kami menemukan barang yang mirip dengan laporan kehilangan Anda: Jaket Hitam Nike', 'match', 1, TRUE, DATE_SUB(NOW(), INTERVAL 1 DAY)),
|
|
(4, 'match_found', 'Barang yang Mirip Ditemukan!', 'Kami menemukan barang yang mirip dengan laporan kehilangan Anda: Kalkulator Casio FX-991ID Plus', 'match', 2, FALSE, NULL),
|
|
(5, 'match_found', 'Barang yang Mirip Ditemukan!', 'Kami menemukan barang yang mirip dengan laporan kehilangan Anda: Botol Minum Tupperware Biru', 'match', 3, FALSE, NULL),
|
|
|
|
-- Notifikasi klaim disetujui
|
|
(4, 'claim_approved', 'Klaim Disetujui!', 'Klaim Anda untuk barang Kalkulator Casio FX-991ID Plus telah disetujui. Silakan ambil barang di tempat yang ditentukan.', 'claim', 3, FALSE, NULL),
|
|
|
|
-- Notifikasi untuk manager (pending claims)
|
|
(2, 'new_claim', 'Klaim Baru', 'Ada klaim baru untuk barang: Jaket Hitam Nike dari Ahmad Rizki', 'claim', 1, FALSE, NULL),
|
|
(2, 'new_claim', 'Klaim Baru', 'Ada klaim baru untuk barang: Botol Minum Tupperware Biru dari Siti Nurhaliza', 'claim', 2, FALSE, NULL);
|
|
|
|
-- ============================================
|
|
-- SEED AUDIT_LOGS
|
|
-- ============================================
|
|
INSERT INTO audit_logs (user_id, action, entity_type, entity_id, details, ip_address, user_agent) VALUES
|
|
-- Login activities
|
|
(1, 'login', 'user', 1, 'Admin logged in', '127.0.0.1', 'Mozilla/5.0'),
|
|
(2, 'login', 'user', 2, 'Manager logged in', '127.0.0.1', 'Mozilla/5.0'),
|
|
(4, 'login', 'user', 4, 'User logged in', '127.0.0.1', 'Mozilla/5.0'),
|
|
|
|
-- Item creation activities
|
|
(2, 'create', 'item', 1, 'Item created: Jaket Hitam Nike', '127.0.0.1', 'Mozilla/5.0'),
|
|
(3, 'create', 'item', 2, 'Item created: Sweater Abu-abu', '127.0.0.1', 'Mozilla/5.0'),
|
|
(2, 'create', 'item', 3, 'Item created: Botol Minum Tupperware Biru', '127.0.0.1', 'Mozilla/5.0'),
|
|
|
|
-- Lost item creation activities
|
|
(4, 'create', 'lost_item', 1, 'Lost item report created: Jaket Hitam', '127.0.0.1', 'Mozilla/5.0'),
|
|
(5, 'create', 'lost_item', 3, 'Lost item report created: Botol Minum Biru', '127.0.0.1', 'Mozilla/5.0'),
|
|
|
|
-- Claim activities
|
|
(4, 'create', 'claim', 1, 'Claim created for item: Jaket Hitam Nike', '127.0.0.1', 'Mozilla/5.0'),
|
|
(5, 'create', 'claim', 2, 'Claim created for item: Botol Minum Tupperware Biru', '127.0.0.1', 'Mozilla/5.0'),
|
|
(4, 'create', 'claim', 3, 'Claim created for item: Kalkulator Casio FX-991ID Plus', '127.0.0.1', 'Mozilla/5.0'),
|
|
|
|
-- Claim verification activity
|
|
(2, 'approve', 'claim', 3, 'Claim approved: Deskripsi cocok, barang diserahkan', '127.0.0.1', 'Mozilla/5.0');
|
|
|
|
SET FOREIGN_KEY_CHECKS = 1;
|
|
|
|
-- ============================================
|
|
-- SUCCESS MESSAGE
|
|
-- ============================================
|
|
SELECT '✅ Database seeded successfully!' AS Status;
|
|
SELECT '👥 Users created: 8 (1 admin, 2 managers, 5 students)' AS Info;
|
|
SELECT '📦 Items created: 11 found items' AS Info;
|
|
SELECT '🔍 Lost items created: 7 reports' AS Info;
|
|
SELECT '📋 Claims created: 3 (1 approved, 2 pending)' AS Info;
|
|
SELECT '🔔 Notifications created: 6' AS Info;
|
|
SELECT '📝 Audit logs created: 11' AS Info;
|
|
SELECT '' AS Empty;
|
|
SELECT '🔐 Login Credentials:' AS Credentials;
|
|
SELECT 'Admin: admin@lostandfound.com / password123' AS Admin;
|
|
SELECT 'Manager: manager1@lostandfound.com / password123' AS Manager1;
|
|
SELECT 'Manager: manager2@lostandfound.com / password123' AS Manager2;
|
|
SELECT 'Student: ahmad@student.com / password123' AS Student;
|
|
SELECT '' AS Empty2;
|
|
SELECT '🚀 Ready to use! Start the server with: make run' AS NextStep; |