-- Membuat Tabel Users CREATE TABLE users ( id SERIAL PRIMARY KEY, nama VARCHAR(255) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL, role VARCHAR(20) CHECK(role IN ('pelanggan', 'admin')) NOT NULL ); -- Membuat Tabel Spare Parts CREATE TABLE spare_parts ( id SERIAL PRIMARY KEY, nama VARCHAR(255) NOT NULL, harga DECIMAL(10, 2) NOT NULL, stok INTEGER NOT NULL, deskripsi TEXT ); -- Membuat Tabel Orders CREATE TABLE orders ( id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(id) ON DELETE CASCADE, spare_part_id INTEGER REFERENCES spare_parts(id) ON DELETE CASCADE, quantity INTEGER NOT NULL, total_price DECIMAL(10, 2) NOT NULL, status VARCHAR(20) CHECK(status IN ('pending', 'proses', 'selesai')) NOT NULL ); -- Membuat Tabel Transactions CREATE TABLE transactions ( id SERIAL PRIMARY KEY, order_id INTEGER REFERENCES orders(id) ON DELETE CASCADE, amount DECIMAL(10, 2) NOT NULL, payment_method VARCHAR(20) CHECK(payment_method IN ('tunai', 'digital')) NOT NULL, status VARCHAR(20) CHECK(status IN ('berhasil', 'gagal', 'pending')) NOT NULL );