import sqlite3 import datetime def connect(): return sqlite3.connect("cafe.db") def setup_database(): db = connect() cur = db.cursor() # Tabel Users cur.execute(""" CREATE TABLE IF NOT EXISTS users( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT, role TEXT ) """) # Tabel Menu cur.execute(""" CREATE TABLE IF NOT EXISTS menu( id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT, harga REAL, gambar TEXT, kategori TEXT ) """) # Tabel Transaksi (Header nota) cur.execute(""" CREATE TABLE IF NOT EXISTS transaksi( id INTEGER PRIMARY KEY AUTOINCREMENT, tanggal TEXT, total REAL, meja_id INTEGER, status TEXT ) """) # Status: 'Pending' (Masuk Dapur), 'Disajikan' (Waiter selesai), 'Lunas' (Kasir) # Tabel Detail Transaksi (Isi makanan per nota) cur.execute(""" CREATE TABLE IF NOT EXISTS detail_transaksi( id INTEGER PRIMARY KEY AUTOINCREMENT, transaksi_id INTEGER, menu_nama TEXT, harga REAL, jumlah INTEGER, subtotal REAL ) """) # Insert Akun Default jika kosong cur.execute("SELECT COUNT(*) FROM users") if cur.fetchone()[0] == 0: users = [ ("admin","admin","admin"), ("kasir","kasir","kasir"), ("pembeli","pembeli","pembeli"), ("waiter","waiter","waiter"), ("pemilik","pemilik","pemilik") ] cur.executemany("INSERT INTO users(username,password,role) VALUES (?,?,?)", users) db.commit() # Insert Menu Dummy jika kosong cur.execute("SELECT COUNT(*) FROM menu") if cur.fetchone()[0] == 0: cur.execute("INSERT INTO menu (nama, harga, gambar) VALUES ('Mie Ayam', 15000, 'mie_ayam.webp')") cur.execute("INSERT INTO menu (nama, harga, gambar) VALUES ('Es Teh', 5000, 'es_teh.webp')") db.commit() db.close()