import sqlite3 def connect(): return sqlite3.connect("cafe.db") def setup_database(): db = connect() cur = db.cursor() # 1. Users cur.execute(""" CREATE TABLE IF NOT EXISTS users( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT, role TEXT ) """) # 2. Menu cur.execute(""" CREATE TABLE IF NOT EXISTS menu( id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT, kategori TEXT, harga REAL, stok INTEGER, gambar TEXT ) """) # 3. Transaksi (Header) cur.execute(""" CREATE TABLE IF NOT EXISTS transaksi( id INTEGER PRIMARY KEY AUTOINCREMENT, nama_pelanggan TEXT, meja_id INTEGER, tanggal TIMESTAMP DEFAULT CURRENT_TIMESTAMP, total REAL, metode_pembayaran TEXT, status TEXT DEFAULT 'Pending' ) """) # Status Flow: 'Pending' (Dipesan) -> 'Served' (Diantar Waiter) -> 'Paid' (Dibayar di Kasir) # 4. Detail Transaksi cur.execute(""" CREATE TABLE IF NOT EXISTS detail_transaksi( id INTEGER PRIMARY KEY AUTOINCREMENT, transaksi_id INTEGER, menu_id INTEGER, jumlah INTEGER, subtotal REAL ) """) # Seeding Data User Dummy cur.execute("SELECT COUNT(*) FROM users") if cur.fetchone()[0] == 0: users = [ ("admin","admin","admin"), ("kasir","kasir","kasir"), ("pembeli","pembeli","pembeli"), ("pemilik","pemilik","pemilik"), ("waiter","waiter","waiter") ] cur.executemany("INSERT INTO users(username,password,role) VALUES (?,?,?)", users) db.commit() db.close() print("Database Ready bos!") if __name__ == "__main__": setup_database()