PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "migrations" ("id" integer primary key autoincrement not null, "migration" varchar not null, "batch" integer not null);
INSERT INTO migrations VALUES(1,'0001_01_01_000000_create_users_table',1);
INSERT INTO migrations VALUES(2,'0001_01_01_000001_create_cache_table',1);
INSERT INTO migrations VALUES(3,'0001_01_01_000002_create_jobs_table',1);
INSERT INTO migrations VALUES(4,'2026_09_01_151148_create_categories_table',1);
INSERT INTO migrations VALUES(5,'2026_09_01_151149_create_products_table',1);
INSERT INTO migrations VALUES(6,'2026_09_01_151150_create_transactions_table',1);
INSERT INTO migrations VALUES(7,'2026_09_01_151151_create_transaction_details_table',1);
INSERT INTO migrations VALUES(8,'2026_09_01_151824_create_customers_table',1);
INSERT INTO migrations VALUES(9,'2026_09_01_151825_create_debts_table',1);
INSERT INTO migrations VALUES(10,'2026_09_01_151826_create_inventory_adjustments_table',1);
INSERT INTO migrations VALUES(11,'2026_09_01_151827_create_quotations_table',1);
INSERT INTO migrations VALUES(12,'2026_09_01_151828_create_quotation_details_table',1);
INSERT INTO migrations VALUES(13,'2026_09_01_151829_create_banners_table',1);
INSERT INTO migrations VALUES(14,'2026_09_01_151830_create_settings_table',1);
INSERT INTO migrations VALUES(15,'2026_09_01_153643_create_stores_table',1);
INSERT INTO migrations VALUES(16,'2026_09_01_153644_create_product_stocks_table',1);
INSERT INTO migrations VALUES(17,'2026_09_01_153645_add_store_id_to_tables',1);
INSERT INTO migrations VALUES(18,'2026_09_01_155426_create_cashier_shifts_table',2);
INSERT INTO migrations VALUES(19,'2026_09_01_155427_create_purchase_invoices_table',2);
INSERT INTO migrations VALUES(20,'2026_09_01_155428_add_pin_to_users_table',2);
INSERT INTO migrations VALUES(21,'2026_09_01_160255_add_business_type_to_stores_table',2);
INSERT INTO migrations VALUES(22,'2026_09_01_162755_create_product_addons_table',3);
INSERT INTO migrations VALUES(23,'2026_09_01_162756_create_held_orders_table',3);
INSERT INTO migrations VALUES(24,'2026_09_01_162822_create_addon_product_table',4);
INSERT INTO migrations VALUES(25,'2026_09_01_163530_create_restaurant_tables_table',5);
INSERT INTO migrations VALUES(26,'2026_09_01_165432_create_void_logs_table',6);
INSERT INTO migrations VALUES(27,'2026_09_01_170244_add_addons_text_to_transaction_details_table',7);
INSERT INTO migrations VALUES(28,'2026_09_01_170956_create_audit_logs_table',8);
INSERT INTO migrations VALUES(29,'2026_09_01_170958_create_cms_engine_tables',8);
INSERT INTO migrations VALUES(30,'2026_09_01_171001_add_fsm_columns_to_restaurant_tables_and_indexes',8);
INSERT INTO migrations VALUES(31,'2026_09_01_190821_add_login_tracking_to_users_table',9);
CREATE TABLE IF NOT EXISTS "password_reset_tokens" ("email" varchar not null, "token" varchar not null, "created_at" datetime, primary key ("email"));
CREATE TABLE IF NOT EXISTS "sessions" ("id" varchar not null, "user_id" integer, "ip_address" varchar, "user_agent" text, "payload" text not null, "last_activity" integer not null, primary key ("id"));
INSERT INTO sessions VALUES('7uROOYlAZ3WRQApoRRCh2ICiZCjObTg79vtlEAGD',NULL,'127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36','eyJfdG9rZW4iOiIxYjIydW90RWNuT3NZRFMwSUlHTWtITFo1UHVyd2xzVUdzWlNIMWk1IiwiX3ByZXZpb3VzIjp7InVybCI6Imh0dHA6XC9cLzEyNy4wLjAuMTo4MDAwXC9hcGlcL29yZGVyc1wvcGVuZGluZyIsInJvdXRlIjpudWxsfSwiX2ZsYXNoIjp7Im9sZCI6W10sIm5ldyI6W119fQ==',1788285680);
INSERT INTO sessions VALUES('0kyxnH9a7HRKxaVe0YpZneqF6HG8p6qLKDxFFOTP',NULL,'127.0.0.1','','eyJfdG9rZW4iOiJ4aWR6bFZCODlHeG03eVhIWXRQUVl3eWNjNG8wckVLbTNUcEJCWFJ1IiwiX3ByZXZpb3VzIjp7InVybCI6Imh0dHA6XC9cLzEyNy4wLjAuMTo4MDAwIiwicm91dGUiOiJob21lIn0sIl9mbGFzaCI6eyJvbGQiOltdLCJuZXciOltdfX0=',1788288812);
INSERT INTO sessions VALUES('M9iIMXuH9mFBUkwpZ9vvCXLmTcWQ6LNy8Tsaq44x',1,'127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36','eyJfdG9rZW4iOiI4WUNuUVFUa1dmTUZZSVRNUGxOU2FMaUlUcnA5UWU5S0FNUzFIUmFmIiwiX2ZsYXNoIjp7Im9sZCI6W10sIm5ldyI6W119LCJfcHJldmlvdXMiOnsidXJsIjoiaHR0cDpcL1wvMTI3LjAuMC4xOjgwMDBcL2FwaVwvb3JkZXJzXC9wZW5kaW5nIiwicm91dGUiOm51bGx9LCJsb2dpbl93ZWJfNTliYTM2YWRkYzJiMmY5NDAxNTgwZjAxNGM3ZjU4ZWE0ZTMwOTg5ZCI6MX0=',1788290914);
INSERT INTO sessions VALUES('tv21VTmNqnBhq8D6eCqcDQdyx9D1BpVJEVhWZLsa',1,'127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36','eyJfdG9rZW4iOiI4N2ZZeDF1SHJaT1dTS0dOQTlWaHFFOTVid0VWMHhucVVxOWVVckpJIiwiX2ZsYXNoIjp7Im9sZCI6W10sIm5ldyI6W119LCJfcHJldmlvdXMiOnsidXJsIjoiaHR0cDpcL1wvMTI3LjAuMC4xOjgwMDBcL2xvZ2luIiwicm91dGUiOiJsb2dpbiJ9LCJsb2dpbl93ZWJfNTliYTM2YWRkYzJiMmY5NDAxNTgwZjAxNGM3ZjU4ZWE0ZTMwOTg5ZCI6MX0=',1788290923);
INSERT INTO sessions VALUES('XbItl1DOw6pFYuSnJxziNBVAT7GM3TDH0Q6Q6dGC',NULL,'127.0.0.1','','eyJfdG9rZW4iOiJQQVRHaEZ4TVFNN01SSTA2dldPMnl5Tk1JSGJaMjNlbWhDV0F6dlh1IiwiX3ByZXZpb3VzIjp7InVybCI6Imh0dHA6XC9cLzEyNy4wLjAuMTo4MDAwIiwicm91dGUiOiJob21lIn0sIl9mbGFzaCI6eyJvbGQiOltdLCJuZXciOltdfX0=',1788342746);
INSERT INTO sessions VALUES('xzuivinl7o6w7uUrHra7Pt0yeQ6dDJ6LLzlmL78t',NULL,'127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36','eyJfdG9rZW4iOiJEVHdmTGU0aUJmck9XZWZRTnlXbGNlRVBDdVdaTFJiNDA3b29qb2Z4IiwiX2ZsYXNoIjp7Im9sZCI6W10sIm5ldyI6W119LCJfcHJldmlvdXMiOnsidXJsIjoiaHR0cDpcL1wvMTI3LjAuMC4xOjgwMDAiLCJyb3V0ZSI6ImhvbWUifX0=',1788342775);
CREATE TABLE IF NOT EXISTS "cache" ("key" varchar not null, "value" text not null, "expiration" integer not null, primary key ("key"));
CREATE TABLE IF NOT EXISTS "cache_locks" ("key" varchar not null, "owner" varchar not null, "expiration" integer not null, primary key ("key"));
CREATE TABLE IF NOT EXISTS "jobs" ("id" integer primary key autoincrement not null, "queue" varchar not null, "payload" text not null, "attempts" integer not null, "reserved_at" integer, "available_at" integer not null, "created_at" integer not null);
CREATE TABLE IF NOT EXISTS "job_batches" ("id" varchar not null, "name" varchar not null, "total_jobs" integer not null, "pending_jobs" integer not null, "failed_jobs" integer not null, "failed_job_ids" text not null, "options" text, "cancelled_at" integer, "created_at" integer not null, "finished_at" integer, primary key ("id"));
CREATE TABLE IF NOT EXISTS "failed_jobs" ("id" integer primary key autoincrement not null, "uuid" varchar not null, "connection" varchar not null, "queue" varchar not null, "payload" text not null, "exception" text not null, "failed_at" datetime not null default CURRENT_TIMESTAMP);
CREATE TABLE IF NOT EXISTS "categories" ("id" integer primary key autoincrement not null, "name" varchar not null, "icon" varchar, "created_at" datetime, "updated_at" datetime);
INSERT INTO categories VALUES(1,'Makanan','utensils','2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO categories VALUES(2,'Minuman','coffee','2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO categories VALUES(3,'Snack & Camilan','cookie','2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO categories VALUES(4,'Sembako','shopping-bag','2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO categories VALUES(5,'Aksesoris','folder','2026-09-01 19:21:32','2026-09-01 19:21:32');
CREATE TABLE IF NOT EXISTS "products" ("id" integer primary key autoincrement not null, "category_id" integer, "name" varchar not null, "sku" varchar, "cost_price" numeric not null default '0', "price" numeric not null default '0', "stock" integer not null default '0', "unit" varchar not null default 'pcs', "image" varchar, "is_active" tinyint(1) not null default '1', "created_at" datetime, "updated_at" datetime, foreign key("category_id") references "categories"("id") on delete set null);
INSERT INTO products VALUES(1,1,'Nasi Goreng Spesial MasAan','MKN-001',12000,20000,148,'porsi','https://images.unsplash.com/photo-1603133872878-684f208fb84b?auto=format&fit=crop&w=400&q=80',1,'2026-09-01 15:42:49','2026-09-01 17:50:38');
INSERT INTO products VALUES(2,1,'Mie Goreng Telur','MKN-002',10000,17000,117,'porsi','https://images.unsplash.com/photo-1585032226651-759b368d7246?auto=format&fit=crop&w=400&q=80',1,'2026-09-01 15:42:49','2026-09-01 18:21:09');
INSERT INTO products VALUES(3,2,'Es Teh Manis Jumbo','MNM-001',2000,5000,290,'gelas','https://images.unsplash.com/photo-1556679343-c7306c1976bc?auto=format&fit=crop&w=400&q=80',1,'2026-09-01 15:42:49','2026-09-01 19:17:39');
INSERT INTO products VALUES(4,2,'Kopi Susu Aren','MNM-002',7000,15000,187,'cup','https://images.unsplash.com/photo-1541167760496-1628856ab772?auto=format&fit=crop&w=400&q=80',1,'2026-09-01 15:42:49','2026-09-01 18:07:36');
INSERT INTO products VALUES(5,4,'Minyak Goreng Premium 1 Liter','SMB-001',14000,18000,498,'pouch','https://images.unsplash.com/photo-1474979266404-7eaacbcd87c5?auto=format&fit=crop&w=400&q=80',1,'2026-09-01 15:42:49','2026-09-01 17:48:02');
INSERT INTO products VALUES(6,4,'Beras Pandan Wangi 5kg','SMB-002',65000,75000,299,'sak','https://images.unsplash.com/photo-1586201375761-83865001e31c?auto=format&fit=crop&w=400&q=80',1,'2026-09-01 15:42:49','2026-09-01 17:52:44');
CREATE TABLE IF NOT EXISTS "transaction_details" ("id" integer primary key autoincrement not null, "transaction_id" integer not null, "product_id" integer, "product_name" varchar not null, "cost_price" numeric not null default '0', "price" numeric not null default '0', "qty" integer not null default '1', "subtotal" numeric not null default '0', "created_at" datetime, "updated_at" datetime, "addons_text" text, foreign key("transaction_id") references "transactions"("id") on delete cascade, foreign key("product_id") references "products"("id") on delete set null);
INSERT INTO transaction_details VALUES(1,1,1,'Nasi Goreng Spesial MasAan',12000,20000,2,40000,'2026-09-01 15:42:49','2026-09-01 15:42:49',NULL);
INSERT INTO transaction_details VALUES(2,1,3,'Es Teh Manis Jumbo',2000,5000,1,5000,'2026-09-01 15:42:49','2026-09-01 15:42:49',NULL);
INSERT INTO transaction_details VALUES(3,2,4,'Kopi Susu Aren',7000,15000,2,30000,'2026-09-01 15:42:49','2026-09-01 15:42:49',NULL);
INSERT INTO transaction_details VALUES(4,3,6,'Beras Pandan Wangi 5kg',65000,75000,1,75000,'2026-09-01 15:42:49','2026-09-01 15:42:49',NULL);
INSERT INTO transaction_details VALUES(5,4,2,'Mie Goreng Telur',10000,17000,2,34000,'2026-09-01 15:42:49','2026-09-01 15:42:49',NULL);
INSERT INTO transaction_details VALUES(6,4,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 15:42:49','2026-09-01 15:42:49',NULL);
INSERT INTO transaction_details VALUES(7,4,3,'Es Teh Manis Jumbo',2000,5000,1,5000,'2026-09-01 15:42:49','2026-09-01 15:42:49',NULL);
INSERT INTO transaction_details VALUES(8,5,6,'Beras Pandan Wangi 5kg',65000,75000,10,750000,'2026-09-01 15:42:49','2026-09-01 15:42:49',NULL);
INSERT INTO transaction_details VALUES(9,6,2,'Mie Goreng Telur',10000,17000,1,17000,'2026-09-01 15:49:37','2026-09-01 15:49:37',NULL);
INSERT INTO transaction_details VALUES(10,7,3,'Es Teh Manis Jumbo',2000,5000,1,5000,'2026-09-01 16:09:00','2026-09-01 16:09:00',NULL);
INSERT INTO transaction_details VALUES(11,8,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 16:15:50','2026-09-01 16:15:50',NULL);
INSERT INTO transaction_details VALUES(12,9,3,'Es Teh Manis Jumbo',2000,5000,1,5000,'2026-09-01 16:18:46','2026-09-01 16:18:46',NULL);
INSERT INTO transaction_details VALUES(13,10,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 16:29:46','2026-09-01 16:29:46',NULL);
INSERT INTO transaction_details VALUES(14,11,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 16:30:31','2026-09-01 16:30:31',NULL);
INSERT INTO transaction_details VALUES(15,12,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 16:33:48','2026-09-01 16:33:48',NULL);
INSERT INTO transaction_details VALUES(16,13,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 16:39:01','2026-09-01 16:39:01',NULL);
INSERT INTO transaction_details VALUES(17,14,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 16:48:40','2026-09-01 16:48:40',NULL);
INSERT INTO transaction_details VALUES(18,15,3,'Es Teh Manis Jumbo',2000,5000,1,5000,'2026-09-01 16:56:52','2026-09-01 16:56:52',NULL);
INSERT INTO transaction_details VALUES(19,15,1,'Nasi Goreng Spesial MasAan',12000,20000,1,20000,'2026-09-01 16:56:52','2026-09-01 16:56:52',NULL);
INSERT INTO transaction_details VALUES(20,15,5,'Minyak Goreng Premium 1 Liter',14000,18000,1,18000,'2026-09-01 16:56:52','2026-09-01 16:56:52',NULL);
INSERT INTO transaction_details VALUES(21,16,3,'Es Teh Manis Jumbo',2000,5000,1,5000,'2026-09-01 17:00:00','2026-09-01 17:00:00',NULL);
INSERT INTO transaction_details VALUES(22,16,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 17:00:00','2026-09-01 17:00:00',NULL);
INSERT INTO transaction_details VALUES(23,17,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 17:00:18','2026-09-01 17:00:18',NULL);
INSERT INTO transaction_details VALUES(24,18,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 17:25:41','2026-09-01 17:25:41',NULL);
INSERT INTO transaction_details VALUES(25,18,3,'Es Teh Manis Jumbo',2000,5000,2,10000,'2026-09-01 17:25:41','2026-09-01 17:25:41',NULL);
INSERT INTO transaction_details VALUES(26,18,2,'Mie Goreng Telur',10000,17000,2,34000,'2026-09-01 17:25:41','2026-09-01 17:25:41',NULL);
INSERT INTO transaction_details VALUES(27,19,3,'Es Teh Manis Jumbo',2000,5000,1,5000,'2026-09-01 17:42:22','2026-09-01 17:42:22',NULL);
INSERT INTO transaction_details VALUES(28,19,2,'Mie Goreng Telur',10000,17000,1,17000,'2026-09-01 17:42:22','2026-09-01 17:42:22',NULL);
INSERT INTO transaction_details VALUES(29,19,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 17:42:22','2026-09-01 17:42:22',NULL);
INSERT INTO transaction_details VALUES(30,20,5,'Minyak Goreng Premium 1 Liter',14000,18000,1,18000,'2026-09-01 17:48:02','2026-09-01 17:48:02',NULL);
INSERT INTO transaction_details VALUES(31,21,1,'Nasi Goreng Spesial MasAan',12000,20000,1,20000,'2026-09-01 17:50:38','2026-09-01 17:50:38',NULL);
INSERT INTO transaction_details VALUES(32,21,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 17:50:38','2026-09-01 17:50:38',NULL);
INSERT INTO transaction_details VALUES(33,22,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 17:52:15','2026-09-01 17:52:15',NULL);
INSERT INTO transaction_details VALUES(34,23,6,'Beras Pandan Wangi 5kg',65000,75000,1,75000,'2026-09-01 17:52:44','2026-09-01 17:52:44',NULL);
INSERT INTO transaction_details VALUES(35,24,3,'Es Teh Manis Jumbo',2000,5000,1,5000,'2026-09-01 18:03:06','2026-09-01 18:03:06',NULL);
INSERT INTO transaction_details VALUES(36,25,3,'Es Teh Manis Jumbo',2000,5000,1,5000,'2026-09-01 18:07:36','2026-09-01 18:07:36',NULL);
INSERT INTO transaction_details VALUES(37,25,4,'Kopi Susu Aren',7000,15000,1,15000,'2026-09-01 18:07:36','2026-09-01 18:07:36',NULL);
INSERT INTO transaction_details VALUES(38,26,2,'Mie Goreng Telur',10000,17000,1,17000,'2026-09-01 18:08:07','2026-09-01 18:08:07',NULL);
INSERT INTO transaction_details VALUES(39,27,3,'Es Teh Manis Jumbo',2000,5000,1,5000,'2026-09-01 19:17:39','2026-09-01 19:17:39',NULL);
CREATE TABLE IF NOT EXISTS "customers" ("id" integer primary key autoincrement not null, "name" varchar not null, "phone" varchar, "email" varchar, "address" text, "credit_limit" numeric not null default '0', "current_debt" numeric not null default '0', "points" integer not null default '0', "created_at" datetime, "updated_at" datetime);
INSERT INTO customers VALUES(1,'Budi Santoso','081299887766','budi@gmail.com','Jl. Merdeka No. 12',500000,75000,120,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO customers VALUES(2,'Toko Berkah Jaya (Grosir)','085544332211','berkah@toko.com','Kios Pasar Induk B3',2000000,250000,450,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO customers VALUES(3,'andri',NULL,NULL,NULL,0,0,0,'2026-09-01 17:25:41','2026-09-01 17:25:41');
INSERT INTO customers VALUES(4,'imam',NULL,NULL,NULL,0,0,0,'2026-09-01 17:42:22','2026-09-01 17:42:22');
INSERT INTO customers VALUES(5,'lala','098790',NULL,NULL,0,0,0,'2026-09-01 17:48:02','2026-09-01 17:48:02');
INSERT INTO customers VALUES(6,'rere',NULL,NULL,NULL,0,0,0,'2026-09-01 17:50:38','2026-09-01 17:50:38');
INSERT INTO customers VALUES(7,'fff',NULL,NULL,NULL,0,0,0,'2026-09-01 17:52:15','2026-09-01 17:52:15');
INSERT INTO customers VALUES(8,'rtwew',NULL,NULL,NULL,0,0,0,'2026-09-01 18:03:06','2026-09-01 18:03:06');
INSERT INTO customers VALUES(9,'test 1',NULL,NULL,NULL,0,0,0,'2026-09-01 18:07:36','2026-09-01 18:07:36');
INSERT INTO customers VALUES(10,'iii',NULL,NULL,NULL,0,0,0,'2026-09-01 18:08:07','2026-09-01 18:08:07');
INSERT INTO customers VALUES(11,'sa',NULL,NULL,NULL,0,0,0,'2026-09-01 19:17:39','2026-09-01 19:17:39');
CREATE TABLE IF NOT EXISTS "debts" ("id" integer primary key autoincrement not null, "transaction_id" integer, "customer_id" integer not null, "total_debt" numeric not null default '0', "paid_debt" numeric not null default '0', "remaining_debt" numeric not null default '0', "status" varchar not null default 'unpaid', "due_date" date, "notes" text, "created_at" datetime, "updated_at" datetime, foreign key("transaction_id") references "transactions"("id") on delete set null, foreign key("customer_id") references "customers"("id") on delete cascade);
INSERT INTO debts VALUES(1,3,1,75000,0,75000,'unpaid','2026-09-08',NULL,'2026-09-01 15:42:49','2026-09-01 15:42:49');
CREATE TABLE IF NOT EXISTS "quotations" ("id" integer primary key autoincrement not null, "quotation_number" varchar not null, "customer_name" varchar not null, "customer_phone" varchar, "customer_email" varchar, "subtotal" numeric not null default '0', "discount" numeric not null default '0', "grand_total" numeric not null default '0', "status" varchar not null default 'draft', "valid_until" date, "notes" text, "created_at" datetime, "updated_at" datetime);
CREATE TABLE IF NOT EXISTS "quotation_details" ("id" integer primary key autoincrement not null, "quotation_id" integer not null, "product_id" integer, "product_name" varchar not null, "price" numeric not null default '0', "qty" integer not null default '1', "subtotal" numeric not null default '0', "created_at" datetime, "updated_at" datetime, foreign key("quotation_id") references "quotations"("id") on delete cascade, foreign key("product_id") references "products"("id") on delete set null);
CREATE TABLE IF NOT EXISTS "banners" ("id" integer primary key autoincrement not null, "title" varchar not null, "subtitle" varchar, "image" varchar not null, "link_url" varchar, "is_active" tinyint(1) not null default '1', "sort_order" integer not null default '0', "created_at" datetime, "updated_at" datetime);
INSERT INTO banners VALUES(1,'Promo Spesial Grand Opening Super POS!','Diskon hingga 20% untuk pembelian via portal online','https://images.unsplash.com/photo-1555396273-367ea4eb4db5?auto=format&fit=crop&w=1000&q=80','/menu',1,1,'2026-09-01 15:42:49','2026-09-01 15:42:49');
CREATE TABLE IF NOT EXISTS "settings" ("id" integer primary key autoincrement not null, "key" varchar not null, "value" text, "group" varchar not null default 'general', "created_at" datetime, "updated_at" datetime);
INSERT INTO settings VALUES(1,'store_name','Kangtaw Klab','web_cms','2026-09-01 15:42:49','2026-09-01 17:14:51');
INSERT INTO settings VALUES(2,'store_address','Jl. Kebon Jeruk No. 88, Jakarta Barat','web_cms','2026-09-01 15:42:49','2026-09-01 17:14:51');
INSERT INTO settings VALUES(3,'store_phone','0812-3456-7890','web_cms','2026-09-01 15:42:49','2026-09-01 17:14:51');
INSERT INTO settings VALUES(4,'online_portal_active','1','web_cms','2026-09-01 15:42:49','2026-09-01 17:14:51');
INSERT INTO settings VALUES(5,'active_tier','basic','system_api','2026-09-01 15:42:49','2026-09-01 19:28:43');
INSERT INTO settings VALUES(6,'store_tagline','Katalog Online & Pemesanan Cepat','web_cms','2026-09-01 17:14:51','2026-09-01 17:14:51');
INSERT INTO settings VALUES(7,'theme_color','#4f46e5','web_cms','2026-09-01 17:14:51','2026-09-01 17:14:51');
INSERT INTO settings VALUES(8,'receipt_show_store_name','1','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(9,'receipt_show_store_address','0','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(10,'receipt_show_store_phone','0','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(11,'receipt_show_cashier','1','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(12,'receipt_show_customer','1','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(13,'receipt_show_table','1','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(14,'receipt_show_datetime','1','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(15,'receipt_show_addons','1','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(16,'receipt_show_qr_ereceipt','0','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(17,'receipt_footer_line_1','Terima kasih atas kunjungan Anda!','receipt_template','2026-09-01 18:06:03','2026-09-01 18:16:43');
INSERT INTO settings VALUES(18,'receipt_footer_line_2','Barang yang dibeli tidak dapat ditukar.','receipt_template','2026-09-01 18:06:03','2026-09-01 18:16:43');
INSERT INTO settings VALUES(19,'receipt_show_masaan_badge','1','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(20,'receipt_paper_size','58mm','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(21,'receipt_feed_lines','2','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(22,'receipt_auto_cut','1','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(23,'receipt_logo_url','','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(24,'receipt_header_msg','Selamat Menikmati Hidangan!','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(25,'receipt_promo_msg','Follow IG @tokokami untuk promo & diskon','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(26,'kitchen_priority_order','Minuman, Makanan, Cemilan, Lainnya','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(27,'table_ticket_show_header','0','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(28,'table_ticket_show_prices','1','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(29,'table_ticket_show_footer','0','receipt_template','2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO settings VALUES(30,'kitchen_show_title','0','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(31,'kitchen_show_time','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(32,'kitchen_show_table','0','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(33,'kitchen_show_customer','0','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(34,'kitchen_show_cashier','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(35,'kitchen_show_addons','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(36,'kitchen_show_checkbox','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(37,'kitchen_show_footer','0','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(38,'bar_show_title','0','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(39,'bar_show_time','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(40,'bar_show_table','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(41,'bar_show_customer','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(42,'bar_show_cashier','0','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(43,'bar_show_addons','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(44,'bar_show_checkbox','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(45,'bar_show_footer','0','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(46,'table_show_store_name','0','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(47,'table_show_table_name','0','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(48,'table_show_time','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(49,'table_show_customer','0','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(50,'table_show_cashier','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(51,'table_show_addons','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(52,'table_show_item_prices','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(53,'table_show_grand_total','1','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(54,'table_show_footer','0','receipt_template','2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO settings VALUES(55,'admin_master_pin','123456','system','2026-09-01 18:37:26','2026-09-01 18:37:26');
INSERT INTO settings VALUES(56,'mail_host','smtp.gmail.com','system_api','2026-09-01 19:28:43','2026-09-01 19:28:43');
INSERT INTO settings VALUES(57,'mail_port','587','system_api','2026-09-01 19:28:43','2026-09-01 19:28:43');
INSERT INTO settings VALUES(58,'mail_username','kerja.masaan@gmail.com','system_api','2026-09-01 19:28:43','2026-09-01 19:28:43');
INSERT INTO settings VALUES(59,'mail_password','','system_api','2026-09-01 19:28:43','2026-09-01 19:28:43');
INSERT INTO settings VALUES(60,'mail_encryption','tls','system_api','2026-09-01 19:28:43','2026-09-01 19:28:43');
INSERT INTO settings VALUES(61,'mail_from_address','kerja.masaan@gmail.com','system_api','2026-09-01 19:28:43','2026-09-01 19:28:43');
INSERT INTO settings VALUES(62,'mail_from_name','Super POS MasAan Mailer','system_api','2026-09-01 19:28:43','2026-09-01 19:28:43');
INSERT INTO settings VALUES(63,'xendit_secret_key','','system_api','2026-09-01 19:28:43','2026-09-01 19:28:43');
INSERT INTO settings VALUES(64,'midtrans_server_key','','system_api','2026-09-01 19:28:43','2026-09-01 19:28:43');
INSERT INTO settings VALUES(65,'qris_nmid','ID102030405060','system_api','2026-09-01 19:28:43','2026-09-01 19:28:43');
INSERT INTO settings VALUES(66,'webhook_secret','secret_key_masaan_123','system_api','2026-09-01 19:28:43','2026-09-01 19:28:43');
CREATE TABLE IF NOT EXISTS "stores" ("id" integer primary key autoincrement not null, "name" varchar not null, "code" varchar not null, "phone" varchar, "address" text, "is_warehouse" tinyint(1) not null default '0', "is_active" tinyint(1) not null default '1', "created_at" datetime, "updated_at" datetime, "business_type" varchar not null default 'retail');
INSERT INTO stores VALUES(1,'Gudang Utama MasAan (Pusat)','WH-MAIN','0812-0000-1111','Kawasan Industri Central No. 1, Jakarta',1,1,'2026-09-01 15:42:48','2026-09-01 15:42:48','retail');
INSERT INTO stores VALUES(2,'Toko Cabang Jakarta (Utama)','STORE-JKT','0812-3456-7890','Jl. Kebon Jeruk No. 88, Jakarta Barat',0,1,'2026-09-01 15:42:48','2026-09-01 16:04:30','fnb');
INSERT INTO stores VALUES(3,'Toko Cabang Bandung','STORE-BDG','0821-9988-7766','Jl. Dago No. 45, Bandung',0,1,'2026-09-01 15:42:48','2026-09-01 15:42:48','retail');
CREATE TABLE IF NOT EXISTS "product_stocks" ("id" integer primary key autoincrement not null, "product_id" integer not null, "store_id" integer not null, "stock" integer not null default '0', "min_stock" integer not null default '5', "created_at" datetime, "updated_at" datetime, foreign key("product_id") references "products"("id") on delete cascade, foreign key("store_id") references "stores"("id") on delete cascade);
INSERT INTO product_stocks VALUES(1,1,1,200,20,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO product_stocks VALUES(2,1,2,49,5,'2026-09-01 15:42:49','2026-09-01 17:50:38');
INSERT INTO product_stocks VALUES(3,1,3,30,5,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO product_stocks VALUES(4,2,1,200,20,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO product_stocks VALUES(5,2,2,46,5,'2026-09-01 15:42:49','2026-09-01 18:08:07');
INSERT INTO product_stocks VALUES(6,2,3,30,5,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO product_stocks VALUES(7,3,1,200,20,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO product_stocks VALUES(8,3,2,45,5,'2026-09-01 15:42:49','2026-09-01 18:07:36');
INSERT INTO product_stocks VALUES(9,3,3,29,5,'2026-09-01 15:42:49','2026-09-01 19:17:39');
INSERT INTO product_stocks VALUES(10,4,1,200,20,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO product_stocks VALUES(11,4,2,45,5,'2026-09-01 15:42:49','2026-09-01 18:07:36');
INSERT INTO product_stocks VALUES(12,4,3,30,5,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO product_stocks VALUES(13,5,1,200,20,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO product_stocks VALUES(14,5,2,49,5,'2026-09-01 15:42:49','2026-09-01 17:48:02');
INSERT INTO product_stocks VALUES(15,5,3,30,5,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO product_stocks VALUES(16,6,1,200,20,'2026-09-01 15:42:49','2026-09-01 15:42:49');
INSERT INTO product_stocks VALUES(17,6,2,49,5,'2026-09-01 15:42:49','2026-09-01 17:52:44');
INSERT INTO product_stocks VALUES(18,6,3,30,5,'2026-09-01 15:42:49','2026-09-01 15:42:49');
CREATE TABLE IF NOT EXISTS "users" ("id" integer primary key autoincrement not null, "name" varchar not null, "email" varchar not null, "phone" varchar, "role" varchar not null default ('kasir'), "active_tier" varchar not null default ('enterprise'), "email_verified_at" datetime, "password" varchar not null, "remember_token" varchar, "created_at" datetime, "updated_at" datetime, "store_id" integer, "pin" varchar not null default '123456', "device_token" varchar, "username" varchar, "last_login_at" datetime, "last_login_device" varchar, "last_login_ip" varchar, "last_latitude" numeric, "last_longitude" numeric, "last_location_address" varchar, foreign key("store_id") references "stores"("id") on delete set null);
INSERT INTO users VALUES(1,'Mas Aan (Owner)','admin@masaan.com','081234567890','admin','basic',NULL,'$2y$12$hyIpD0Wnb7/tPeOovJHwLeSHg4IcNr9QeHGdPgoW8INrqlspcK.aC',NULL,'2026-09-01 15:42:49','2026-09-02 09:52:36',2,'123456',NULL,NULL,'2026-09-02 09:52:36','Apple Mac (macOS)','127.0.0.1',NULL,NULL,NULL);
INSERT INTO users VALUES(2,'Kasir Utama','kasir@masaan.com','089876543210','kasir','enterprise',NULL,'$2y$12$hyIpD0Wnb7/tPeOovJHwLeSHg4IcNr9QeHGdPgoW8INrqlspcK.aC',NULL,'2026-09-01 15:42:49','2026-09-01 19:12:31',2,'123456',NULL,NULL,'2026-09-01 19:12:31','Apple Mac (macOS)','127.0.0.1',NULL,NULL,NULL);
INSERT INTO users VALUES(3,'imam farhan','kingmultimedia2022@gmail.com',NULL,'supervisor','enterprise',NULL,'$2y$12$hyIpD0Wnb7/tPeOovJHwLeSHg4IcNr9QeHGdPgoW8INrqlspcK.aC',NULL,'2026-09-01 18:20:53','2026-09-01 18:37:26',NULL,'123456',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
INSERT INTO users VALUES(4,'ibu aan','ibuaan@gmail.com',NULL,'keuangan','enterprise',NULL,'$2y$12$Cl0xhgyxpfa1D50v9dd3i.3XOQz3vXd3e4IqiXyk.20ApWWynfrfS',NULL,'2026-09-01 19:03:10','2026-09-01 19:11:59',NULL,'12345',NULL,NULL,'2026-09-01 19:11:59','Apple Mac (macOS)','127.0.0.1',NULL,NULL,NULL);
INSERT INTO users VALUES(5,'bapa aan','aan1@gmail.com',NULL,'manager','enterprise',NULL,'$2y$12$m5/Hmj0z/4X..xQ5kfP0yOPy1H.YDw8DFH3uiv4TCwarhByV/z1uG',NULL,'2026-09-01 19:04:01','2026-09-01 19:12:53',3,'12345',NULL,NULL,'2026-09-01 19:12:53','Apple Mac (macOS)','127.0.0.1',NULL,NULL,NULL);
CREATE TABLE IF NOT EXISTS "transactions" ("id" integer primary key autoincrement not null, "invoice_number" varchar not null, "order_type" varchar not null default ('pos'), "user_id" integer, "customer_id" integer, "customer_name" varchar, "customer_phone" varchar, "total_items" integer not null default ('0'), "subtotal" numeric not null default ('0'), "discount" numeric not null default ('0'), "tax" numeric not null default ('0'), "grand_total" numeric not null default ('0'), "paid_amount" numeric not null default ('0'), "change_amount" numeric not null default ('0'), "payment_method" varchar not null default ('cash'), "payment_status" varchar not null default ('paid'), "status" varchar not null default ('completed'), "notes" text, "created_at" datetime, "updated_at" datetime, "store_id" integer, foreign key("customer_id") references customers("id") on delete set null on update no action, foreign key("user_id") references users("id") on delete set null on update no action, foreign key("store_id") references "stores"("id") on delete set null);
INSERT INTO transactions VALUES(1,'INV-JKT-001','in_store',2,NULL,'Pelanggan Umum',NULL,3,45000,5000,0,40000,50000,10000,'cash','paid','completed','Makan di tempat','2026-09-01 15:42:49','2026-09-01 15:42:49',2);
INSERT INTO transactions VALUES(2,'INV-JKT-002','online_delivery',2,NULL,'Siti Nurhaliza','081288776655',2,30000,0,0,30000,30000,0,'qris','paid','completed','Pesan via portal online (QRIS ShopeePay)','2026-09-01 15:42:49','2026-09-01 15:42:49',2);
INSERT INTO transactions VALUES(3,'INV-JKT-003','in_store',2,1,'Budi Santoso','081299887766',1,75000,0,0,75000,0,0,'debt','pending','completed','Kasbon Budi Santoso - Jatuh Tempo 7 Hari','2026-09-01 15:42:49','2026-09-01 15:42:49',2);
INSERT INTO transactions VALUES(4,'INV-BDG-001','in_store',1,NULL,'Rina Gunawan',NULL,4,54000,4000,0,50000,100000,50000,'cash','paid','completed','Cabang Bandung - Take Away','2026-09-01 15:42:49','2026-09-01 15:42:49',3);
INSERT INTO transactions VALUES(5,'INV-WH-001','in_store',1,2,'Toko Berkah Jaya (Grosir)','085544332211',10,750000,50000,0,700000,700000,0,'transfer','paid','completed','Penjualan Grosir dari Gudang Utama ke Toko Berkah Jaya','2026-09-01 15:42:49','2026-09-01 15:42:49',1);
INSERT INTO transactions VALUES(6,'ONLINE-20260901-0001','online_dinein',NULL,NULL,'Imam Farhan','087812130507',1,17000,0,0,17000,17000,0,'qris','paid','completed',NULL,'2026-09-01 15:49:37','2026-09-01 15:50:10',NULL);
INSERT INTO transactions VALUES(7,'INV-20260901-0001','pos',1,NULL,NULL,NULL,1,5000,0,0,5000,100000,95000,'cash','paid','completed',NULL,'2026-09-01 16:09:00','2026-09-01 16:09:00',NULL);
INSERT INTO transactions VALUES(8,'INV-20260901-0002','pos',2,NULL,NULL,NULL,1,15000,0,0,15000,15000,0,'cash','paid','completed',NULL,'2026-09-01 16:15:50','2026-09-01 16:15:50',NULL);
INSERT INTO transactions VALUES(9,'INV-20260901-0003','pos',2,NULL,NULL,NULL,1,5000,0,0,5000,5000,0,'cash','paid','completed',NULL,'2026-09-01 16:18:46','2026-09-01 16:18:46',NULL);
INSERT INTO transactions VALUES(10,'INV-20260901-0004','pos',2,NULL,NULL,NULL,1,15000,0,0,15000,15000,0,'cash','paid','completed',NULL,'2026-09-01 16:29:46','2026-09-01 16:29:46',NULL);
INSERT INTO transactions VALUES(11,'INV-20260901-0005','pos',2,NULL,NULL,NULL,1,15000,0,0,15000,15000,0,'cash','paid','completed',NULL,'2026-09-01 16:30:31','2026-09-01 16:30:31',NULL);
INSERT INTO transactions VALUES(12,'INV-20260901-0006','pos',2,NULL,NULL,NULL,1,15000,0,0,15000,15000,0,'qris','paid','completed',NULL,'2026-09-01 16:33:48','2026-09-01 16:33:48',NULL);
INSERT INTO transactions VALUES(13,'INV-20260901-0007','pos',1,NULL,'deri',NULL,1,15000,0,0,15000,15000,0,'transfer','paid','completed',NULL,'2026-09-01 16:39:01','2026-09-01 16:39:01',NULL);
INSERT INTO transactions VALUES(14,'INV-20260901-0008','pos',2,NULL,'oo',NULL,1,15000,0,0,15000,15000,0,'cash','paid','completed',NULL,'2026-09-01 16:48:40','2026-09-01 16:48:40',NULL);
INSERT INTO transactions VALUES(15,'INV-20260901-0009','pos',2,NULL,'rr',NULL,3,43000,0,0,43000,43000,0,'cash','paid','completed',NULL,'2026-09-01 16:56:52','2026-09-01 16:56:52',NULL);
INSERT INTO transactions VALUES(16,'INV-20260901-0010','pos',2,NULL,'k',NULL,2,20000,0,0,20000,20000,0,'transfer','paid','completed',NULL,'2026-09-01 17:00:00','2026-09-01 17:00:00',NULL);
INSERT INTO transactions VALUES(17,'INV-20260901-0011','pos',2,2,'Toko Berkah Jaya (Grosir)','085544332211',1,15000,0,0,15000,15000,0,'transfer','paid','completed',NULL,'2026-09-01 17:00:18','2026-09-01 17:00:18',NULL);
INSERT INTO transactions VALUES(18,'INV-20260901-0012','pos',1,3,'andri',NULL,3,59000,0,0,59000,59000,0,'cash','paid','completed',NULL,'2026-09-01 17:25:41','2026-09-01 17:25:41',NULL);
INSERT INTO transactions VALUES(19,'INV-20260901-0013','pos',2,4,'imam',NULL,3,37000,0,0,37000,37000,0,'cash','paid','completed',NULL,'2026-09-01 17:42:22','2026-09-01 17:42:22',NULL);
INSERT INTO transactions VALUES(20,'INV-20260901-0014','pos',2,5,'lala','098790',1,18000,0,0,18000,18000,0,'qris','paid','completed',NULL,'2026-09-01 17:48:02','2026-09-01 17:48:02',NULL);
INSERT INTO transactions VALUES(21,'INV-20260901-0015','pos',2,6,'rere',NULL,2,35000,0,0,35000,35000,0,'cash','paid','completed',NULL,'2026-09-01 17:50:38','2026-09-01 17:50:38',NULL);
INSERT INTO transactions VALUES(22,'INV-20260901-0016','pos',2,7,'fff',NULL,1,15000,0,0,15000,15000,0,'cash','paid','completed',NULL,'2026-09-01 17:52:15','2026-09-01 17:52:15',NULL);
INSERT INTO transactions VALUES(23,'INV-20260901-0017','pos',2,7,'fff',NULL,1,75000,0,0,75000,75000,0,'transfer','paid','completed',NULL,'2026-09-01 17:52:44','2026-09-01 17:52:44',NULL);
INSERT INTO transactions VALUES(24,'INV-20260901-0018','pos',1,8,'rtwew',NULL,1,5000,0,0,5000,5000,0,'transfer','paid','completed',NULL,'2026-09-01 18:03:06','2026-09-01 18:03:06',NULL);
INSERT INTO transactions VALUES(25,'INV-20260901-0019','pos',1,9,'test 1',NULL,2,20000,0,0,20000,20000,0,'cash','paid','completed',NULL,'2026-09-01 18:07:36','2026-09-01 18:07:36',NULL);
INSERT INTO transactions VALUES(26,'INV-20260901-0020','pos',1,10,'iii',NULL,1,17000,0,0,17000,17000,0,'cash','paid','voided','[VOID] salah (Disetujui: imam farhan)','2026-09-01 18:08:07','2026-09-01 18:21:09',NULL);
INSERT INTO transactions VALUES(27,'INV-20260901-0021','pos',5,11,'sa',NULL,1,5000,0,0,5000,5000,0,'cash','paid','completed',NULL,'2026-09-01 19:17:39','2026-09-01 19:17:39',NULL);
CREATE TABLE IF NOT EXISTS "inventory_adjustments" ("id" integer primary key autoincrement not null, "product_id" integer not null, "type" varchar not null, "qty" integer not null, "notes" text, "user_id" integer, "created_at" datetime, "updated_at" datetime, "from_store_id" integer, "to_store_id" integer, foreign key("user_id") references users("id") on delete set null on update no action, foreign key("product_id") references products("id") on delete cascade on update no action, foreign key("from_store_id") references "stores"("id") on delete set null, foreign key("to_store_id") references "stores"("id") on delete set null);
INSERT INTO inventory_adjustments VALUES(1,5,'in',500,'Pasokan Minyak Goreng 500 Pouch dari Supplier PT Bina Agro',1,'2026-09-01 15:42:49','2026-09-01 15:42:49',1,NULL);
INSERT INTO inventory_adjustments VALUES(2,1,'transfer',50,'Transfer Stok Nasi Goreng dari Gudang Utama ke Toko Cabang Jakarta',1,'2026-09-01 15:42:49','2026-09-01 15:42:49',1,2);
INSERT INTO inventory_adjustments VALUES(3,2,'transfer',30,'Transfer Stok Mie Goreng dari Gudang Utama ke Toko Cabang Bandung',1,'2026-09-01 15:42:49','2026-09-01 15:42:49',1,3);
INSERT INTO inventory_adjustments VALUES(4,4,'damaged',2,'Cup Kopi Susu Aren pecah saat perakitan',2,'2026-09-01 15:42:49','2026-09-01 15:42:49',2,NULL);
CREATE TABLE IF NOT EXISTS "cashier_shifts" ("id" integer primary key autoincrement not null, "user_id" integer not null, "store_id" integer not null, "opening_cash" numeric not null default '0', "cash_sales" numeric not null default '0', "non_cash_sales" numeric not null default '0', "closing_cash_expected" numeric not null default '0', "closing_cash_actual" numeric, "difference" numeric not null default '0', "opened_at" datetime not null, "closed_at" datetime, "status" varchar not null default 'open', "notes" text, "created_at" datetime, "updated_at" datetime, foreign key("user_id") references "users"("id") on delete cascade, foreign key("store_id") references "stores"("id") on delete cascade);
INSERT INTO cashier_shifts VALUES(1,1,2,100000,0,0,0,NULL,0,'2026-09-01 16:08:42',NULL,'open',NULL,'2026-09-01 16:08:42','2026-09-01 16:08:42');
INSERT INTO cashier_shifts VALUES(2,2,2,200000,0,0,0,NULL,0,'2026-09-01 16:18:29',NULL,'open',NULL,'2026-09-01 16:18:29','2026-09-01 16:18:29');
INSERT INTO cashier_shifts VALUES(3,5,3,100000,0,0,0,NULL,0,'2026-09-01 19:14:15',NULL,'open',NULL,'2026-09-01 19:14:15','2026-09-01 19:14:15');
CREATE TABLE IF NOT EXISTS "purchase_invoices" ("id" integer primary key autoincrement not null, "invoice_number" varchar not null, "supplier_name" varchar not null, "store_id" integer not null, "user_id" integer not null, "total_amount" numeric not null default '0', "purchase_date" date not null, "notes" text, "created_at" datetime, "updated_at" datetime, foreign key("store_id") references "stores"("id") on delete cascade, foreign key("user_id") references "users"("id") on delete cascade);
CREATE TABLE IF NOT EXISTS "purchase_invoice_details" ("id" integer primary key autoincrement not null, "purchase_invoice_id" integer not null, "product_id" integer not null, "product_name" varchar not null, "cost_price" numeric not null default '0', "qty" integer not null default '1', "subtotal" numeric not null default '0', "created_at" datetime, "updated_at" datetime, foreign key("purchase_invoice_id") references "purchase_invoices"("id") on delete cascade, foreign key("product_id") references "products"("id") on delete cascade);
CREATE TABLE IF NOT EXISTS "product_addons" ("id" integer primary key autoincrement not null, "product_id" integer, "name" varchar not null, "type" varchar not null default 'single', "options" text not null, "extra_price" numeric not null default '0', "is_active" tinyint(1) not null default '1', "created_at" datetime, "updated_at" datetime, foreign key("product_id") references "products"("id") on delete cascade);
INSERT INTO product_addons VALUES(1,NULL,'Level Sugar','single','["Normal","Less Sugar","No Sugar"]',0,1,'2026-09-01 19:17:13','2026-09-01 19:17:13');
CREATE TABLE IF NOT EXISTS "held_orders" ("id" integer primary key autoincrement not null, "reference_number" varchar not null, "customer_name" varchar, "table_number" varchar, "items" text not null, "subtotal" numeric not null default '0', "discount" numeric not null default '0', "grand_total" numeric not null default '0', "notes" text, "user_id" integer not null, "store_id" integer, "created_at" datetime, "updated_at" datetime, foreign key("user_id") references "users"("id") on delete cascade, foreign key("store_id") references "stores"("id") on delete cascade);
CREATE TABLE IF NOT EXISTS "addon_product" ("id" integer primary key autoincrement not null, "product_addon_id" integer not null, "product_id" integer not null, "created_at" datetime, "updated_at" datetime, foreign key("product_addon_id") references "product_addons"("id") on delete cascade, foreign key("product_id") references "products"("id") on delete cascade);
INSERT INTO addon_product VALUES(1,1,3,NULL,NULL);
INSERT INTO addon_product VALUES(2,1,4,NULL,NULL);
CREATE TABLE IF NOT EXISTS "restaurant_tables" ("id" integer primary key autoincrement not null, "name" varchar not null, "room_name" varchar not null default 'Lantai 1 Utama', "capacity" integer not null default '4', "status" varchar check ("status" in ('available', 'occupied')) not null default 'available', "current_held_order_id" integer, "occupied_at" datetime, "store_id" integer, "created_at" datetime, "updated_at" datetime, "customer_name" varchar, "reserved_at" datetime, "grace_period_expires_at" datetime, foreign key("current_held_order_id") references "held_orders"("id") on delete set null, foreign key("store_id") references "stores"("id") on delete cascade);
INSERT INTO restaurant_tables VALUES(1,'Kaca','Indoor',4,'available',NULL,NULL,2,'2026-09-01 16:38:06','2026-09-01 16:38:06',NULL,NULL,NULL);
INSERT INTO restaurant_tables VALUES(2,'Lukisan','Indoor',4,'available',NULL,NULL,2,'2026-09-01 16:38:22','2026-09-01 16:38:22',NULL,NULL,NULL);
INSERT INTO restaurant_tables VALUES(3,'Vape','Lantai 1 Utama',4,'available',NULL,NULL,2,'2026-09-01 18:54:24','2026-09-01 18:54:24',NULL,NULL,NULL);
CREATE TABLE IF NOT EXISTS "void_logs" ("id" integer primary key autoincrement not null, "transaction_id" integer not null, "invoice_number" varchar not null, "cashier_user_id" integer not null, "supervisor_user_id" integer, "reason" text not null, "amount_voided" numeric not null, "store_id" integer, "created_at" datetime, "updated_at" datetime, foreign key("transaction_id") references "transactions"("id") on delete cascade, foreign key("cashier_user_id") references "users"("id") on delete cascade, foreign key("supervisor_user_id") references "users"("id") on delete set null, foreign key("store_id") references "stores"("id") on delete cascade);
INSERT INTO void_logs VALUES(1,26,'INV-20260901-0020',1,3,'salah',17000,1,'2026-09-01 18:21:09','2026-09-01 18:21:09');
CREATE TABLE IF NOT EXISTS "audit_logs" ("id" integer primary key autoincrement not null, "user_id" integer, "user_name" varchar, "action" varchar not null, "entity_type" varchar, "entity_id" varchar, "old_values" text, "new_values" text, "ip_address" varchar, "user_agent" text, "store_id" integer, "created_at" datetime, "updated_at" datetime, foreign key("user_id") references "users"("id") on delete set null, foreign key("store_id") references "stores"("id") on delete cascade);
INSERT INTO audit_logs VALUES(1,1,'Mas Aan (Owner)','UPDATE_CMS_BRANDING','Setting',NULL,NULL,'{"online_portal_active":"1","store_name":"Kangtaw Klab","store_tagline":"Katalog Online & Pemesanan Cepat","store_address":"Jl. Kebon Jeruk No. 88, Jakarta Barat","store_phone":"0812-3456-7890","theme_color":"#4f46e5"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:14:51','2026-09-01 17:14:51');
INSERT INTO audit_logs VALUES(2,1,'Mas Aan (Owner)','CREATE_FLASH_SALE','CmsFlashSale','2',NULL,'{"title":"\ud83d\udd25 FLASH SALE SPESIAL HARI INI","start_time":"2026-09-01T17:16","end_time":"2026-09-02T05:16","items":[{"product_id":1,"discount_price":15000,"quota":10}]}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:19:01','2026-09-01 17:19:01');
INSERT INTO audit_logs VALUES(3,1,'Mas Aan (Owner)','UPDATE_CMS_BRANDING','Setting',NULL,NULL,'{"online_portal_active":"1","store_name":"Kangtaw Klab","store_tagline":"Katalog Online & Pemesanan Cepat","store_address":"Jl. Kebon Jeruk No. 88, Jakarta Barat","store_phone":"0812-3456-7890","theme_color":"#4f46e5"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:19:16','2026-09-01 17:19:16');
INSERT INTO audit_logs VALUES(4,1,'Mas Aan (Owner)','PIN_LOGIN_SUCCESS','User','1',NULL,'{"store_name":"Toko Cabang Bandung","kasir":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',3,'2026-09-01 17:21:00','2026-09-01 17:21:00');
INSERT INTO audit_logs VALUES(5,1,'Mas Aan (Owner)','LOGOUT','User','1',NULL,'{"name":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',3,'2026-09-01 17:21:06','2026-09-01 17:21:06');
INSERT INTO audit_logs VALUES(6,1,'Mas Aan (Owner)','PIN_LOGIN_SUCCESS','User','1',NULL,'{"store_name":"Toko Cabang Jakarta (Utama)","kasir":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:21:11','2026-09-01 17:21:11');
INSERT INTO audit_logs VALUES(7,1,'Mas Aan (Owner)','LOGOUT','User','1',NULL,'{"name":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:21:14','2026-09-01 17:21:14');
INSERT INTO audit_logs VALUES(8,1,'Mas Aan (Owner)','PIN_LOGIN_SUCCESS','User','1',NULL,'{"store_name":"Toko Cabang Jakarta (Utama)","kasir":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:21:33','2026-09-01 17:21:33');
INSERT INTO audit_logs VALUES(9,1,'Mas Aan (Owner)','PIN_LOGIN_SUCCESS','User','1',NULL,'{"store_name":"Toko Cabang Jakarta (Utama)","kasir":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:24:33','2026-09-01 17:24:33');
INSERT INTO audit_logs VALUES(10,1,'Mas Aan (Owner)','POS_CHECKOUT','Transaction','18',NULL,'{"invoice":"INV-20260901-0012","total":59000,"payment_method":"cash","kasir":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:25:41','2026-09-01 17:25:41');
INSERT INTO audit_logs VALUES(11,1,'Mas Aan (Owner)','LOGOUT','User','1',NULL,'{"name":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:35:35','2026-09-01 17:35:35');
INSERT INTO audit_logs VALUES(12,2,'Kasir Utama','LOGIN_SUCCESS','User','2',NULL,'{"email":"kasir@masaan.com","role":"kasir"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:36:01','2026-09-01 17:36:01');
INSERT INTO audit_logs VALUES(13,1,'Mas Aan (Owner)','PIN_LOGIN_SUCCESS','User','1',NULL,'{"store_name":"Toko Cabang Jakarta (Utama)","kasir":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:37:27','2026-09-01 17:37:27');
INSERT INTO audit_logs VALUES(14,2,'Kasir Utama','LOGIN_SUCCESS','User','2',NULL,'{"email":"kasir@masaan.com","role":"kasir"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:37:33','2026-09-01 17:37:33');
INSERT INTO audit_logs VALUES(15,2,'Kasir Utama','POS_CHECKOUT','Transaction','19',NULL,'{"invoice":"INV-20260901-0013","total":37000,"payment_method":"cash","kasir":"Kasir Utama"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:42:22','2026-09-01 17:42:22');
INSERT INTO audit_logs VALUES(16,2,'Kasir Utama','POS_CHECKOUT','Transaction','20',NULL,'{"invoice":"INV-20260901-0014","total":18000,"payment_method":"qris","kasir":"Kasir Utama"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:48:02','2026-09-01 17:48:02');
INSERT INTO audit_logs VALUES(17,2,'Kasir Utama','POS_CHECKOUT','Transaction','21',NULL,'{"invoice":"INV-20260901-0015","total":35000,"payment_method":"cash","kasir":"Kasir Utama"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:50:38','2026-09-01 17:50:38');
INSERT INTO audit_logs VALUES(18,2,'Kasir Utama','POS_CHECKOUT','Transaction','22',NULL,'{"invoice":"INV-20260901-0016","total":15000,"payment_method":"cash","kasir":"Kasir Utama"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:52:15','2026-09-01 17:52:15');
INSERT INTO audit_logs VALUES(19,2,'Kasir Utama','POS_CHECKOUT','Transaction','23',NULL,'{"invoice":"INV-20260901-0017","total":75000,"payment_method":"transfer","kasir":"Kasir Utama"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:52:44','2026-09-01 17:52:44');
INSERT INTO audit_logs VALUES(20,2,'Kasir Utama','LOGOUT','User','2',NULL,'{"name":"Kasir Utama"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 17:54:47','2026-09-01 17:54:47');
INSERT INTO audit_logs VALUES(21,1,'Mas Aan (Owner)','LOGIN_SUCCESS','User','1',NULL,'{"email":"admin@masaan.com","role":"admin"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 18:01:20','2026-09-01 18:01:20');
INSERT INTO audit_logs VALUES(22,1,'Mas Aan (Owner)','POS_CHECKOUT','Transaction','24',NULL,'{"invoice":"INV-20260901-0018","total":5000,"payment_method":"transfer","kasir":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 18:03:06','2026-09-01 18:03:06');
INSERT INTO audit_logs VALUES(23,1,'Mas Aan (Owner)','UPDATE_RECEIPT_TEMPLATE','Setting',NULL,NULL,'{"receipt_show_store_name":"1","receipt_show_store_address":"0","receipt_show_store_phone":"0","receipt_show_cashier":"1","receipt_show_customer":"1","receipt_show_table":"1","receipt_show_datetime":"1","receipt_show_addons":"1","receipt_show_qr_ereceipt":"0","receipt_footer_line_1":null,"receipt_footer_line_2":null,"receipt_show_masaan_badge":"1","receipt_paper_size":"58mm","receipt_feed_lines":2,"receipt_auto_cut":"1","receipt_logo_url":null,"receipt_header_msg":"Selamat Menikmati Hidangan!","receipt_promo_msg":"Follow IG @tokokami untuk promo & diskon","kitchen_priority_order":"Minuman, Makanan, Cemilan, Lainnya","table_ticket_show_header":"0","table_ticket_show_prices":"1","table_ticket_show_footer":"0"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 18:06:03','2026-09-01 18:06:03');
INSERT INTO audit_logs VALUES(24,1,'Mas Aan (Owner)','POS_CHECKOUT','Transaction','25',NULL,'{"invoice":"INV-20260901-0019","total":20000,"payment_method":"cash","kasir":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 18:07:36','2026-09-01 18:07:36');
INSERT INTO audit_logs VALUES(25,1,'Mas Aan (Owner)','POS_CHECKOUT','Transaction','26',NULL,'{"invoice":"INV-20260901-0020","total":17000,"payment_method":"cash","kasir":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 18:08:07','2026-09-01 18:08:07');
INSERT INTO audit_logs VALUES(26,1,'Mas Aan (Owner)','UPDATE_RECEIPT_TEMPLATE','Setting',NULL,NULL,'{"receipt_show_store_name":"1","receipt_show_store_address":"0","receipt_show_store_phone":"0","receipt_show_cashier":"1","receipt_show_customer":"1","receipt_show_table":"1","receipt_show_datetime":"1","receipt_show_addons":"1","receipt_show_qr_ereceipt":"0","receipt_footer_line_1":"Terima kasih atas kunjungan Anda!","receipt_footer_line_2":"Barang yang dibeli tidak dapat ditukar.","receipt_show_masaan_badge":"1","receipt_paper_size":"58mm","receipt_feed_lines":2,"receipt_auto_cut":"1","receipt_logo_url":null,"receipt_header_msg":"Selamat Menikmati Hidangan!","receipt_promo_msg":"Follow IG @tokokami untuk promo & diskon","kitchen_priority_order":"Minuman, Makanan, Cemilan, Lainnya","table_ticket_show_header":"0","table_ticket_show_prices":"1","table_ticket_show_footer":"0","kitchen_show_title":"0","kitchen_show_time":"1","kitchen_show_table":"0","kitchen_show_customer":"0","kitchen_show_cashier":"1","kitchen_show_addons":"1","kitchen_show_checkbox":"1","kitchen_show_footer":"0","bar_show_title":"0","bar_show_time":"1","bar_show_table":"1","bar_show_customer":"1","bar_show_cashier":"0","bar_show_addons":"1","bar_show_checkbox":"1","bar_show_footer":"0","table_show_store_name":"0","table_show_table_name":"0","table_show_time":"1","table_show_customer":"0","table_show_cashier":"1","table_show_addons":"1","table_show_item_prices":"1","table_show_grand_total":"1","table_show_footer":"0"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 18:16:43','2026-09-01 18:16:43');
INSERT INTO audit_logs VALUES(27,1,'Mas Aan (Owner)','LOGOUT','User','1',NULL,'{"name":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 18:34:49','2026-09-01 18:34:49');
INSERT INTO audit_logs VALUES(28,2,'Kasir Utama','LOGIN_SUCCESS','User','2',NULL,'{"email":"kasir@masaan.com","role":"kasir"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 18:34:53','2026-09-01 18:34:53');
INSERT INTO audit_logs VALUES(29,NULL,'System','LOGIN_FAILED','User',NULL,NULL,'{"email":"admin@masaan.com","ip":"127.0.0.1"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',1,'2026-09-01 18:53:49','2026-09-01 18:53:49');
INSERT INTO audit_logs VALUES(30,1,'Mas Aan (Owner)','LOGIN_SUCCESS','User','1',NULL,'{"email":"admin@masaan.com","role":"admin"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',2,'2026-09-01 18:53:55','2026-09-01 18:53:55');
INSERT INTO audit_logs VALUES(31,1,'Mas Aan (Owner)','CREATE_TABLE','RestaurantTable','3',NULL,'{"name":"Vape","room_name":"Lantai 1 Utama","capacity":4,"status":"available","store_id":2,"updated_at":"2026-09-01T18:54:24.000000Z","created_at":"2026-09-01T18:54:24.000000Z","id":3}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',2,'2026-09-01 18:54:24','2026-09-01 18:54:24');
INSERT INTO audit_logs VALUES(32,2,'Kasir Utama','LOGOUT','User','2',NULL,'{"name":"Kasir Utama"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 19:01:46','2026-09-01 19:01:46');
INSERT INTO audit_logs VALUES(33,NULL,'System','LOGIN_FAILED','User',NULL,NULL,'{"email":"kasir@masaan.com","ip":"127.0.0.1"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',1,'2026-09-01 19:01:51','2026-09-01 19:01:51');
INSERT INTO audit_logs VALUES(34,2,'Kasir Utama','LOGIN_SUCCESS','User','2',NULL,'{"email":"kasir@masaan.com","role":"kasir"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 19:01:58','2026-09-01 19:01:58');
INSERT INTO audit_logs VALUES(35,2,'Kasir Utama','LOGOUT','User','2',NULL,'{"name":"Kasir Utama"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 19:02:12','2026-09-01 19:02:12');
INSERT INTO audit_logs VALUES(36,1,'Mas Aan (Owner)','LOGIN_SUCCESS','User','1',NULL,'{"email":"admin@masaan.com","role":"admin"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 19:02:29','2026-09-01 19:02:29');
INSERT INTO audit_logs VALUES(37,1,'Mas Aan (Owner)','CREATE_USER','User','4',NULL,'{"name":"ibu aan","email":"ibuaan@gmail.com","role":"keuangan"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 19:03:10','2026-09-01 19:03:10');
INSERT INTO audit_logs VALUES(38,1,'Mas Aan (Owner)','LOGOUT','User','1',NULL,'{"name":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 19:03:13','2026-09-01 19:03:13');
INSERT INTO audit_logs VALUES(39,1,'Mas Aan (Owner)','CREATE_USER','User','5',NULL,'{"name":"bapa aan","email":"aan1@gmail.com","role":"manager"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',2,'2026-09-01 19:04:01','2026-09-01 19:04:01');
INSERT INTO audit_logs VALUES(40,1,'Mas Aan (Owner)','LOGOUT','User','1',NULL,'{"name":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',2,'2026-09-01 19:11:42','2026-09-01 19:11:42');
INSERT INTO audit_logs VALUES(41,4,'ibu aan','LOGIN_SUCCESS','User','4',NULL,'{"name":"ibu aan","email":"ibuaan@gmail.com","role":"keuangan","device":"Apple Mac (macOS)","ip":"127.0.0.1","coordinates":"GPS Tidak Diizinkan","maps_url":null}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',1,'2026-09-01 19:11:59','2026-09-01 19:11:59');
INSERT INTO audit_logs VALUES(42,4,'ibu aan','LOGOUT','User','4',NULL,'{"name":"ibu aan"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',1,'2026-09-01 19:12:11','2026-09-01 19:12:11');
INSERT INTO audit_logs VALUES(43,2,'Kasir Utama','LOGIN_SUCCESS','User','2',NULL,'{"name":"Kasir Utama","email":"kasir@masaan.com","role":"kasir","device":"Apple Mac (macOS)","ip":"127.0.0.1","coordinates":"GPS Tidak Diizinkan","maps_url":null}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',2,'2026-09-01 19:12:31','2026-09-01 19:12:31');
INSERT INTO audit_logs VALUES(44,2,'Kasir Utama','LOGOUT','User','2',NULL,'{"name":"Kasir Utama"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',2,'2026-09-01 19:12:38','2026-09-01 19:12:38');
INSERT INTO audit_logs VALUES(45,5,'bapa aan','LOGIN_SUCCESS','User','5',NULL,'{"name":"bapa aan","email":"aan1@gmail.com","role":"manager","device":"Apple Mac (macOS)","ip":"127.0.0.1","coordinates":"GPS Tidak Diizinkan","maps_url":null}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',3,'2026-09-01 19:12:53','2026-09-01 19:12:53');
INSERT INTO audit_logs VALUES(46,5,'bapa aan','OPEN_SHIFT','CashierShift','3',NULL,'{"kasir":"bapa aan","opening_cash":100000}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',3,'2026-09-01 19:14:15','2026-09-01 19:14:15');
INSERT INTO audit_logs VALUES(47,5,'bapa aan','POS_CHECKOUT','Transaction','27',NULL,'{"invoice":"INV-20260901-0021","total":5000,"payment_method":"cash","kasir":"bapa aan"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',3,'2026-09-01 19:17:39','2026-09-01 19:17:39');
INSERT INTO audit_logs VALUES(48,5,'bapa aan','LOGOUT','User','5',NULL,'{"name":"bapa aan"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',3,'2026-09-01 19:24:18','2026-09-01 19:24:18');
INSERT INTO audit_logs VALUES(49,NULL,'System','LOGIN_FAILED','User',NULL,NULL,'{"identifier":"admin@masaan.com","ip":"127.0.0.1","device":"Apple Mac (macOS)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',1,'2026-09-01 19:24:27','2026-09-01 19:24:27');
INSERT INTO audit_logs VALUES(50,1,'Mas Aan (Owner)','LOGIN_SUCCESS','User','1',NULL,'{"name":"Mas Aan (Owner)","email":"admin@masaan.com","role":"admin","device":"Apple Mac (macOS)","ip":"127.0.0.1","coordinates":"GPS Tidak Diizinkan","maps_url":null}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',2,'2026-09-01 19:24:36','2026-09-01 19:24:36');
INSERT INTO audit_logs VALUES(51,1,'Mas Aan (Owner)','LOGIN_SUCCESS','User','1',NULL,'{"name":"Mas Aan (Owner)","email":"admin@masaan.com","role":"admin","device":"Apple Mac (macOS)","ip":"127.0.0.1","coordinates":"-6.2192362475432, 106.9014189322","maps_url":"https:\/\/www.google.com\/maps?q=-6.2192362475432,106.9014189322"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36',2,'2026-09-01 19:26:37','2026-09-01 19:26:37');
INSERT INTO audit_logs VALUES(52,1,'Mas Aan (Owner)','LOGOUT','User','1',NULL,'{"name":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',2,'2026-09-01 19:28:02','2026-09-01 19:28:02');
INSERT INTO audit_logs VALUES(53,1,'Mas Aan (Owner)','LOGIN_SUCCESS','User','1',NULL,'{"name":"Mas Aan (Owner)","email":"admin@masaan.com","role":"admin","device":"Apple Mac (macOS)","ip":"127.0.0.1","coordinates":"GPS Tidak Diizinkan","maps_url":null}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',2,'2026-09-01 19:28:06','2026-09-01 19:28:06');
INSERT INTO audit_logs VALUES(54,1,'Mas Aan (Owner)','LOGIN_SUCCESS','User','1',NULL,'{"name":"Mas Aan (Owner)","email":"admin@masaan.com","role":"admin","device":"Apple Mac (macOS)","ip":"127.0.0.1","coordinates":"GPS Tidak Diizinkan","maps_url":null}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',2,'2026-09-02 09:52:36','2026-09-02 09:52:36');
INSERT INTO audit_logs VALUES(55,1,'Mas Aan (Owner)','LOGOUT','User','1',NULL,'{"name":"Mas Aan (Owner)"}','127.0.0.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) SuperPOSMasAan/1.0.0 Chrome/152.0.7977.65 Electron/44.1.1 Safari/537.36',2,'2026-09-02 09:52:52','2026-09-02 09:52:52');
CREATE TABLE IF NOT EXISTS "cms_sections" ("id" integer primary key autoincrement not null, "section_type" varchar not null, "title" varchar, "subtitle" varchar, "order_index" integer not null default '0', "is_active" tinyint(1) not null default '1', "content" text, "store_id" integer, "created_at" datetime, "updated_at" datetime, foreign key("store_id") references "stores"("id") on delete cascade);
INSERT INTO cms_sections VALUES(1,'features','Kenapa Memilih Super POS MasAan?','Standar kualitas rasa, kecepatan pelayanan, dan higienitas terjamin 100%.',2,1,'[{"icon":"ShieldCheck","title":"100% Halal & Higienis","desc":"Bahan baku bersertifikat resmi dan diproses secara higienis setiap hari."},{"icon":"Clock","title":"Pelayanan Instan & Cepat","desc":"Pesanan siap dalam hitungan menit untuk Dine-in, Pickup, maupun Delivery."},{"icon":"HeartHandshake","title":"Bahan Baku Segar Pilihan","desc":"Dipilih langsung dari supplier terpercaya untuk cita rasa terbaik."},{"icon":"Sparkles","title":"Jaminan Kepuasan Rasa","desc":"Garansi rasa mantap atau ganti baru dengan tim dapur profesional."}]',1,'2026-09-01 17:11:47','2026-09-01 17:11:47');
INSERT INTO cms_sections VALUES(2,'faq','Pertanyaan yang Sering Diajukan (FAQ)','Semua jawaban atas pertanyaan seputar pemesanan, pembayaran, dan reservasi.',4,1,'[{"q":"Bagaimana cara memesan menu secara online?","a":"Cukup pilih menu favorit Anda di etalase web, tentukan jenis pesanan (Pickup \/ Delivery \/ Dine-in), lalu selesaikan pembayaran via QRIS atau Transfer Bank."},{"q":"Apakah mendukung pembayaran QRIS semua e-wallet?","a":"Ya! Kami menerima seluruh pembayaran QRIS (BCA, Mandiri, GoPay, OVO, ShopeePay, DANA, dan LinkAja)."},{"q":"Bisa pesan meja untuk rombongan (Dine-in)?","a":"Bisa! Anda bisa memilih nomor meja dan waktu kedatangan di halaman checkout online."}]',1,'2026-09-01 17:11:47','2026-09-01 17:11:47');
CREATE TABLE IF NOT EXISTS "cms_banners" ("id" integer primary key autoincrement not null, "title" varchar not null, "subtitle" varchar, "image_desktop_url" varchar, "image_mobile_url" varchar, "cta_text" varchar default 'Pesan Sekarang', "cta_link" varchar default '/#catalog', "sort_order" integer not null default '0', "is_active" tinyint(1) not null default '1', "store_id" integer, "created_at" datetime, "updated_at" datetime, foreign key("store_id") references "stores"("id") on delete cascade);
INSERT INTO cms_banners VALUES(1,'Spesial Promo MasAan Enterprise','Nikmati Sensasi Menu Terbaik & Diskon Spesial Hari Ini!','https://images.unsplash.com/photo-1555396273-367ea4eb4db5?auto=format&fit=crop&w=1920&q=80','https://images.unsplash.com/photo-1555396273-367ea4eb4db5?auto=format&fit=crop&w=800&q=80','🔥 Pesan Sekarang (Diskon s/d 50%)','#catalog',1,1,1,'2026-09-01 17:11:47','2026-09-01 17:11:47');
CREATE TABLE IF NOT EXISTS "cms_flash_sales" ("id" integer primary key autoincrement not null, "title" varchar not null default '🔥 FLASH SALE SPESIAL HARI INI', "banner_bg" varchar, "start_time" datetime not null, "end_time" datetime not null, "is_active" tinyint(1) not null default '1', "store_id" integer, "created_at" datetime, "updated_at" datetime, foreign key("store_id") references "stores"("id") on delete cascade);
INSERT INTO cms_flash_sales VALUES(1,'🔥 FLASH SALE SPESIAL HARI INI - DISKON 50%',NULL,'2026-09-01 17:11:47','2026-09-02 05:11:47',1,1,'2026-09-01 17:11:47','2026-09-01 17:11:47');
INSERT INTO cms_flash_sales VALUES(2,'🔥 FLASH SALE SPESIAL HARI INI',NULL,'2026-09-01 17:16:00','2026-09-02 05:16:00',1,1,'2026-09-01 17:19:01','2026-09-01 17:19:01');
CREATE TABLE IF NOT EXISTS "cms_flash_sale_items" ("id" integer primary key autoincrement not null, "cms_flash_sale_id" integer not null, "product_id" integer not null, "original_price" numeric not null, "discount_price" numeric not null, "quota" integer not null default '50', "sold_count" integer not null default '0', "created_at" datetime, "updated_at" datetime, foreign key("cms_flash_sale_id") references "cms_flash_sales"("id") on delete cascade, foreign key("product_id") references "products"("id") on delete cascade);
INSERT INTO cms_flash_sale_items VALUES(1,1,1,20000,10000,30,12,'2026-09-01 17:11:47','2026-09-01 17:11:47');
INSERT INTO cms_flash_sale_items VALUES(2,2,1,20000,15000,10,0,'2026-09-01 17:19:01','2026-09-01 17:19:01');
INSERT INTO sqlite_sequence VALUES('migrations',31);
INSERT INTO sqlite_sequence VALUES('users',5);
INSERT INTO sqlite_sequence VALUES('transactions',27);
INSERT INTO sqlite_sequence VALUES('inventory_adjustments',4);
INSERT INTO sqlite_sequence VALUES('stores',3);
INSERT INTO sqlite_sequence VALUES('categories',5);
INSERT INTO sqlite_sequence VALUES('products',7);
INSERT INTO sqlite_sequence VALUES('product_stocks',18);
INSERT INTO sqlite_sequence VALUES('customers',11);
INSERT INTO sqlite_sequence VALUES('transaction_details',39);
INSERT INTO sqlite_sequence VALUES('debts',1);
INSERT INTO sqlite_sequence VALUES('banners',1);
INSERT INTO sqlite_sequence VALUES('settings',66);
INSERT INTO sqlite_sequence VALUES('cashier_shifts',3);
INSERT INTO sqlite_sequence VALUES('restaurant_tables',3);
INSERT INTO sqlite_sequence VALUES('cms_banners',1);
INSERT INTO sqlite_sequence VALUES('cms_sections',2);
INSERT INTO sqlite_sequence VALUES('cms_flash_sales',2);
INSERT INTO sqlite_sequence VALUES('cms_flash_sale_items',2);
INSERT INTO sqlite_sequence VALUES('audit_logs',55);
INSERT INTO sqlite_sequence VALUES('void_logs',1);
INSERT INTO sqlite_sequence VALUES('product_addons',1);
INSERT INTO sqlite_sequence VALUES('addon_product',2);
CREATE INDEX "sessions_user_id_index" on "sessions" ("user_id");
CREATE INDEX "sessions_last_activity_index" on "sessions" ("last_activity");
CREATE INDEX "cache_expiration_index" on "cache" ("expiration");
CREATE INDEX "cache_locks_expiration_index" on "cache_locks" ("expiration");
CREATE INDEX "jobs_queue_index" on "jobs" ("queue");
CREATE INDEX "failed_jobs_connection_queue_failed_at_index" on "failed_jobs" ("connection", "queue", "failed_at");
CREATE UNIQUE INDEX "failed_jobs_uuid_unique" on "failed_jobs" ("uuid");
CREATE UNIQUE INDEX "products_sku_unique" on "products" ("sku");
CREATE UNIQUE INDEX "quotations_quotation_number_unique" on "quotations" ("quotation_number");
CREATE UNIQUE INDEX "settings_key_unique" on "settings" ("key");
CREATE UNIQUE INDEX "stores_code_unique" on "stores" ("code");
CREATE UNIQUE INDEX "product_stocks_product_id_store_id_unique" on "product_stocks" ("product_id", "store_id");
CREATE UNIQUE INDEX "users_email_unique" on "users" ("email");
CREATE UNIQUE INDEX "transactions_invoice_number_unique" on "transactions" ("invoice_number");
CREATE INDEX "transactions_store_id_created_at_index" on "transactions" ("store_id", "created_at");
CREATE UNIQUE INDEX "purchase_invoices_invoice_number_unique" on "purchase_invoices" ("invoice_number");
CREATE UNIQUE INDEX "held_orders_reference_number_unique" on "held_orders" ("reference_number");
CREATE INDEX "audit_logs_action_created_at_index" on "audit_logs" ("action", "created_at");
CREATE INDEX "audit_logs_entity_type_entity_id_index" on "audit_logs" ("entity_type", "entity_id");
CREATE INDEX "idx_store_status_paymethod" on "transactions" ("store_id", "status", "payment_method");
CREATE INDEX "idx_tx_created_status" on "transactions" ("created_at", "status");
CREATE UNIQUE INDEX "users_username_unique" on "users" ("username");
COMMIT;
