70 lines
4.5 KiB
SQL
70 lines
4.5 KiB
SQL
CREATE DATABASE IF NOT EXISTS secondtech_market
|
|
CHARACTER SET utf8mb4
|
|
COLLATE utf8mb4_unicode_ci;
|
|
|
|
USE secondtech_market;
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(120) NOT NULL,
|
|
email VARCHAR(160) NOT NULL UNIQUE,
|
|
whatsapp VARCHAR(30) NOT NULL,
|
|
password_hash VARCHAR(255) NOT NULL,
|
|
role ENUM('user', 'superadmin') NOT NULL DEFAULT 'user',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS products (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
user_id INT UNSIGNED NULL,
|
|
title VARCHAR(180) NOT NULL,
|
|
category VARCHAR(80) NOT NULL,
|
|
price INT UNSIGNED NOT NULL,
|
|
`condition` VARCHAR(80) NOT NULL,
|
|
location VARCHAR(120) NOT NULL,
|
|
seller VARCHAR(120) NOT NULL,
|
|
whatsapp VARCHAR(30) NOT NULL,
|
|
image VARCHAR(255) NOT NULL,
|
|
description TEXT NOT NULL,
|
|
status ENUM('Tersedia', 'Terjual') NOT NULL DEFAULT 'Tersedia',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
CONSTRAINT fk_products_user
|
|
FOREIGN KEY (user_id) REFERENCES users(id)
|
|
ON DELETE SET NULL
|
|
);
|
|
|
|
INSERT INTO products
|
|
(id, title, category, price, `condition`, location, seller, whatsapp, image, description, status)
|
|
VALUES
|
|
(1, 'Laptop Lenovo ThinkPad T480', 'Laptop', 3200000, 'Bekas Normal', 'Yogyakarta', 'Raka SIJA', '6281234567890', 'https://images.unsplash.com/photo-1496181133206-80ce9b88a853?q=80&w=1200&auto=format&fit=crop', 'Laptop bekas cocok untuk belajar coding, jaringan, virtual machine ringan, dan kebutuhan sekolah. RAM 8GB, SSD 256GB, keyboard normal.', 'Tersedia'),
|
|
(2, 'PC Rakitan i5 Gen 8', 'PC', 4100000, 'Bekas Normal', 'Bantul', 'Dimas Tech', '628111222333', 'https://images.unsplash.com/photo-1587202372775-e229f172b9d7?q=80&w=1200&auto=format&fit=crop', 'PC rakitan untuk lab jaringan, desain ringan, dan multitasking. Intel Core i5, RAM 16GB, SSD 512GB.', 'Tersedia'),
|
|
(3, 'Monitor LG 24 Inch IPS', 'Monitor', 1150000, 'Bekas Mulus', 'Sleman', 'Adit Hardware', '628555666777', 'https://images.unsplash.com/photo-1527443224154-c4a3942d3acf?q=80&w=1200&auto=format&fit=crop', 'Monitor IPS 24 inch, warna masih bagus, cocok untuk coding dan editing. Include kabel power dan HDMI.', 'Tersedia'),
|
|
(4, 'Keyboard Mechanical Keychron K2', 'Keyboard', 850000, 'Bekas Normal', 'Solo', 'Naufal Keys', '628333444555', 'https://images.unsplash.com/photo-1618384887929-16ec33fab9ef?q=80&w=1200&auto=format&fit=crop', 'Keyboard mechanical wireless, switch brown, cocok untuk coding. Kondisi normal dan keycap lengkap.', 'Tersedia'),
|
|
(5, 'MikroTik RB941 hAP Lite', 'Router', 180000, 'Bekas Normal', 'Kulon Progo', 'Lab Network', '628777888999', 'https://images.unsplash.com/photo-1606904825846-647eb07f5be2?q=80&w=1200&auto=format&fit=crop', 'Router MikroTik untuk belajar routing, firewall, DHCP, hotspot, dan konfigurasi dasar jaringan.', 'Tersedia'),
|
|
(6, 'Switch TP-Link 8 Port Gigabit', 'Switch', 250000, 'Bekas Normal', 'Magelang', 'Fajar Net', '628999111222', 'https://images.unsplash.com/photo-1558494949-ef010cbdcc31?q=80&w=1200&auto=format&fit=crop', 'Switch 8 port gigabit, cocok untuk lab kecil, warnet mini, dan praktik jaringan lokal.', 'Tersedia'),
|
|
(7, 'Server Dell PowerEdge R620', 'Server', 6500000, 'Bekas Server Room', 'Jakarta', 'Server Bekas ID', '628222333444', 'https://images.unsplash.com/photo-1558494949-ef010cbdcc31?q=80&w=1200&auto=format&fit=crop', 'Server rackmount bekas data center, cocok untuk belajar virtualization, Proxmox, Docker, dan homelab.', 'Tersedia'),
|
|
(8, 'Access Point TP-Link EAP225', 'Access Point', 620000, 'Bekas Mulus', 'Semarang', 'WiFi Store', '6281212121212', 'https://images.unsplash.com/photo-1544197150-b99a580bb7a8?q=80&w=1200&auto=format&fit=crop', 'Access point ceiling untuk hotspot sekolah, kantor, dan lab jaringan. Kondisi normal.', 'Tersedia')
|
|
ON DUPLICATE KEY UPDATE
|
|
title = VALUES(title),
|
|
category = VALUES(category),
|
|
price = VALUES(price),
|
|
`condition` = VALUES(`condition`),
|
|
location = VALUES(location),
|
|
seller = VALUES(seller),
|
|
whatsapp = VALUES(whatsapp),
|
|
image = VALUES(image),
|
|
description = VALUES(description),
|
|
status = VALUES(status);
|
|
|
|
CREATE TABLE IF NOT EXISTS product_images (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
product_id INT UNSIGNED NOT NULL,
|
|
image VARCHAR(255) NOT NULL,
|
|
sort_order INT UNSIGNED NOT NULL DEFAULT 0,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT fk_product_images_product
|
|
FOREIGN KEY (product_id) REFERENCES products(id)
|
|
ON DELETE CASCADE
|
|
);
|