-- POS Kasir Database Backup
-- Generated: 2026-02-13 22:22:41
-- Database: adk_pos


-- Table: categories
CREATE TABLE `categories` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `description` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `categories_name_index` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `categories` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES ('1', 'Digital Printing', 'Banner, Spanduk, Sticker Outdoor/Indoor', '2026-02-13 11:22:43', '2026-02-13 11:22:43');
INSERT INTO `categories` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES ('2', 'Offset & Sablon', 'Brosur, Kartu Nama, Nota, Undangan, Kaos', '2026-02-13 11:22:43', '2026-02-13 11:22:43');
INSERT INTO `categories` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES ('3', 'Dokumen & Finishing', 'Fotocopy, Penjilidan, Laminating, Print Laser', '2026-02-13 11:22:43', '2026-02-13 11:22:43');
INSERT INTO `categories` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES ('4', 'Merchandise', 'Mug, Pin, ID Card, Ganci, Tumbler', '2026-02-13 11:22:43', '2026-02-13 11:22:43');
INSERT INTO `categories` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES ('5', 'Outdoor Media', 'Baliho, Neon Box, Papan Nama', '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `categories` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES ('6', 'Jasa Desain', 'Setting Layout, Edit Foto, Desain Logo', '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `categories` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES ('7', 'Perlengkapan Kantor', 'Stempel, Map, Amplop, Kop Surat', '2026-02-13 11:22:44', '2026-02-13 11:22:44');

-- Table: customers
CREATE TABLE `customers` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `phone` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `address` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table: expenses
CREATE TABLE `expenses` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `amount` decimal(15,2) NOT NULL,
  `date` date NOT NULL,
  `user_id` bigint unsigned NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `expenses_user_id_foreign` (`user_id`),
  CONSTRAINT `expenses_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table: failed_jobs
CREATE TABLE `failed_jobs` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `uuid` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `connection` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `queue` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `payload` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `exception` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `failed_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `failed_jobs_uuid_unique` (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table: job_batches
CREATE TABLE `job_batches` (
  `id` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `total_jobs` int NOT NULL,
  `pending_jobs` int NOT NULL,
  `failed_jobs` int NOT NULL,
  `failed_job_ids` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `options` mediumtext COLLATE utf8mb4_unicode_ci,
  `cancelled_at` int DEFAULT NULL,
  `created_at` int NOT NULL,
  `finished_at` int DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table: jobs
CREATE TABLE `jobs` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `queue` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `payload` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `attempts` tinyint unsigned NOT NULL,
  `reserved_at` int unsigned DEFAULT NULL,
  `available_at` int unsigned NOT NULL,
  `created_at` int unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `jobs_queue_index` (`queue`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table: migrations
CREATE TABLE `migrations` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `migration` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `batch` int NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('1', '0001_01_01_000000_create_users_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('2', '0001_01_01_000001_create_cache_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('3', '0001_01_01_000002_create_jobs_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('4', '2024_01_01_000000_create_categories_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('5', '2024_01_01_000001_create_product_groups_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('6', '2024_01_01_000002_create_suppliers_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('7', '2024_01_01_000003_create_products_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('8', '2024_01_01_000004_create_transactions_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('9', '2024_01_01_000005_create_transaction_items_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('10', '2024_01_01_000006_create_stock_movements_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('11', '2025_08_10_124615_create_settings_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('12', '2026_01_15_164702_create_expenses_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('13', '2026_01_15_165237_create_purchases_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('14', '2026_01_15_165250_create_purchase_items_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('15', '2026_01_15_210639_create_customers_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('16', '2026_01_24_175243_add_permissions_to_users_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('17', '2026_02_09_193041_add_theme_color_to_settings_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('18', '2026_02_09_201853_add_printing_features_to_tables', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('19', '2026_02_09_214500_add_dp_production_pricing_features', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('20', '2026_02_13_112110_add_secondary_color_to_settings_table', '1');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('21', '2026_02_13_134500_add_shipping_fields_to_transactions_table', '2');
INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES ('22', '2026_02_13_194007_modify_role_column_in_users_table', '3');

-- Table: product_groups
CREATE TABLE `product_groups` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `category_id` bigint unsigned NOT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `has_variants` tinyint(1) NOT NULL DEFAULT '0',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `product_groups_category_id_foreign` (`category_id`),
  CONSTRAINT `product_groups_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('1', 'Banner Spanduk Flexi 280gr', '1', 'Banner standar China 280gr', '0', '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('2', 'Banner Spanduk Flexi 340gr', '1', 'Banner lebih tebal High Res', '0', '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('3', 'Banner Spanduk Flexi Korea 440gr', '1', 'Bahan Premium, Sangat Tebal', '0', '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('4', 'Sticker Ritrama / Vinyl', '1', 'Sticker outdoor meteran Graphtec', '0', '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('5', 'Sticker Cromo / Bontax', '1', 'Sticker kertas per meter A3+', '0', '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('6', 'Sticker Transparan', '1', 'Sticker bening meteran', '0', '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('7', 'Sticker One Way Vision', '1', 'Kaca mobil/toko', '0', '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('8', 'X-Banner (Set)', '1', 'Stand X-Banner + Cetak 60x160cm', '0', '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('9', 'Y-Banner (Set)', '1', 'Stand Y-Banner + Cetak 60x160cm', '0', '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('10', 'Roll Up Banner (Set)', '1', 'Stand Roll Up + Cetak 60x160cm', '0', '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('11', 'Backdrop Portable', '1', 'Rangka Spider 3x3m + Cetak', '0', '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('12', 'Kartu Nama Standard', '2', 'Isi 100 lembar, Box Plastik', '0', '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('13', 'Kartu Nama Laminating Doff', '2', 'Laminating 2 sisi, Isi 100', '0', '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('14', 'Kartu Nama Spot UV', '2', 'Premium dengan efek glossy timbul', '0', '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('15', 'Brosur A4 Full Color', '2', 'Art Paper 120gr, Rim', '0', '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('16', 'Brosur A5 Full Color', '2', 'Art Paper 150gr, Rim', '0', '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('17', 'Nota NCR 2 Ply', '2', '1/4 Folio, 50 set per buku', '0', '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('18', 'Nota NCR 3 Ply', '2', '1/2 Folio, 50 set per buku', '0', '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('19', 'Undangan Softcover', '2', 'Desain custom, min 100pcs', '0', '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('20', 'Undangan Hardcover', '2', 'Laminating + Foil Mas, min 100pcs', '0', '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('21', 'Sablon Kaos Plastisol', '2', 'Combed 30s (Min 12pcs)', '0', '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('22', 'Fotocopy HVS 70gr', '3', 'A4/F4 per lembar', '0', '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('23', 'Print Warna (Laser)', '3', 'HVS A4 per lembar', '0', '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('24', 'Print Gambar Full A4', '3', 'Laser Full Color High Res', '0', '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('25', 'Jilid Mika Standard', '3', 'Cover mika + lakban', '0', '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('26', 'Jilid Spiral Kawat', '3', 'Ukuran A4/F4', '0', '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('27', 'Jilid Hardcover Skripsi', '3', 'Emas Emboss + Pita', '0', '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('28', 'Laminating Panas', '3', 'A4/F4 tebal pres', '0', '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('29', 'Mug Putih Coating', '4', 'Mug + Cetak Full Color', '0', '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('30', 'Mug Dalam Warna', '4', 'Mug warna + Cetak', '0', '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('31', 'ID Card PVC', '4', 'Standar ATM, Cetak 2 Sisi', '0', '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('32', 'Tali Lanyard 2cm', '4', 'Sablon 1 warna / Full color', '0', '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('33', 'Pin Peniti 44mm', '4', 'Doff/Glossy', '0', '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('34', 'Pin Peniti 58mm', '4', 'Ukuran lebih besar', '0', '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('35', 'Gantungan Kunci Acrilic', '4', 'Double side, min 20pcs', '0', '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('36', 'Tumbler Sakura LED', '4', 'Grafir Laser, cek suhu', '0', '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('37', 'Papan Nama Toko', '5', 'Rangka Besi + Flexi, per m2', '0', '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('38', 'Neon Box Akrilik', '5', 'Lampu LED, per m2', '0', '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('39', 'Neon Box Backlite', '5', 'Cetak 2 sisi, per m2', '0', '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('40', 'Huruf Timbul Galvanis', '5', 'Cat powdercoating, per cm tinggi', '0', '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('41', 'Jasa Desain Simple', '6', NULL, '0', '2026-02-13 11:22:48', '2026-02-13 13:30:14');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('42', 'Jasa Desain Kompleks', '6', 'Logo/Brosur berat', '0', '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('43', 'Jasa Redraw Logo', '6', 'Tracing vektor', '0', '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('44', 'Jasa Edit Foto', '6', 'Ganti background, retouch', '0', '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('45', 'Stempel Flash Otomatis', '7', 'Sudah isi tinta, 1 warna', '0', '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('46', 'Stempel Runaflex', '7', 'Gagang kayu, karet biasa', '0', '2026-02-13 11:22:49', '2026-02-13 11:22:49');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('47', 'Map Folio Custom', '7', 'Art Carton 260gr, min 100pcs', '0', '2026-02-13 11:22:49', '2026-02-13 11:22:49');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('48', 'Amplop Kabinet Airmail', '7', 'Cetak logo, per box (100pcs)', '0', '2026-02-13 11:22:49', '2026-02-13 11:22:49');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('49', 'Kop Surat HVS 80gr', '7', 'Cetak 1 warna, per Rim', '0', '2026-02-13 11:22:49', '2026-02-13 11:22:49');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('50', 'Label Nama Transparan', '7', 'Untuk undangan/barang, lembar A3', '0', '2026-02-13 11:22:49', '2026-02-13 11:22:49');
INSERT INTO `product_groups` (`id`, `name`, `category_id`, `description`, `has_variants`, `created_at`, `updated_at`) VALUES ('51', 'Kertas A4', '7', NULL, '0', '2026-02-13 16:27:32', '2026-02-13 16:27:32');

-- Table: production_logs
CREATE TABLE `production_logs` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `production_order_id` bigint unsigned NOT NULL,
  `user_id` bigint unsigned DEFAULT NULL,
  `status_from` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status_to` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `notes` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `production_logs_production_order_id_foreign` (`production_order_id`),
  KEY `production_logs_user_id_foreign` (`user_id`),
  CONSTRAINT `production_logs_production_order_id_foreign` FOREIGN KEY (`production_order_id`) REFERENCES `production_orders` (`id`) ON DELETE CASCADE,
  CONSTRAINT `production_logs_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('1', '1', '1', 'pending', 'delivered', NULL, '2026-02-13 13:33:13', '2026-02-13 13:33:13');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('2', '2', '1', 'pending', 'ready_for_pickup', NULL, '2026-02-13 13:37:41', '2026-02-13 13:37:41');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('3', '2', '1', 'ready_for_pickup', 'delivered', NULL, '2026-02-13 13:38:02', '2026-02-13 13:38:02');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('4', '3', '1', 'pending', 'pending', 'Menambahkan catatan internal: \"ini catatan\"', '2026-02-13 16:41:45', '2026-02-13 16:41:45');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('5', '3', '1', 'pending', 'queued', NULL, '2026-02-13 17:10:34', '2026-02-13 17:10:34');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('6', '3', '1', 'queued', 'queued', 'Upload file desain/lampiran baru.', '2026-02-13 17:41:56', '2026-02-13 17:41:56');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('7', '5', '1', 'pending', 'pending', 'Menambahkan catatan internal: \"catatan penting\"', '2026-02-13 17:43:37', '2026-02-13 17:43:37');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('8', '4', '1', 'pending', 'in_progress', NULL, '2026-02-13 18:19:09', '2026-02-13 18:19:09');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('9', '5', '1', 'pending', 'completed', NULL, '2026-02-13 18:19:16', '2026-02-13 18:19:16');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('10', '2', '1', 'delivered', 'ready_for_pickup', NULL, '2026-02-13 18:19:36', '2026-02-13 18:19:36');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('11', '3', '1', 'queued', 'delivered', NULL, '2026-02-13 18:26:26', '2026-02-13 18:26:26');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('12', '6', '1', 'pending', 'queued', NULL, '2026-02-13 19:12:14', '2026-02-13 19:12:14');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('13', '6', '1', 'queued', 'in_progress', NULL, '2026-02-13 20:12:03', '2026-02-13 20:12:03');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('14', '5', '1', 'completed', 'ready_for_pickup', NULL, '2026-02-13 20:12:14', '2026-02-13 20:12:14');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('15', '7', '1', 'pending', 'delivered', NULL, '2026-02-13 20:12:17', '2026-02-13 20:12:17');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('16', '7', '1', 'delivered', 'pending', NULL, '2026-02-13 20:12:21', '2026-02-13 20:12:21');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('17', '4', '1', 'in_progress', 'completed', NULL, '2026-02-13 20:14:25', '2026-02-13 20:14:25');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('18', '3', '1', 'delivered', 'ready_for_pickup', NULL, '2026-02-13 20:14:31', '2026-02-13 20:14:31');
INSERT INTO `production_logs` (`id`, `production_order_id`, `user_id`, `status_from`, `status_to`, `notes`, `created_at`, `updated_at`) VALUES ('19', '2', '1', 'ready_for_pickup', 'queued', NULL, '2026-02-13 20:14:38', '2026-02-13 20:14:38');

-- Table: production_orders
CREATE TABLE `production_orders` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `order_code` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `transaction_id` bigint unsigned NOT NULL,
  `transaction_item_id` bigint unsigned DEFAULT NULL,
  `product_id` bigint unsigned DEFAULT NULL,
  `product_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `width` decimal(10,2) DEFAULT NULL COMMENT 'in meters or cm based on unit',
  `height` decimal(10,2) DEFAULT NULL COMMENT 'in meters or cm based on unit',
  `size_unit` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'm' COMMENT 'm=meter, cm=centimeter',
  `quantity` int NOT NULL DEFAULT '1',
  `file_path` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Design file uploaded by customer',
  `status` enum('pending','queued','in_progress','completed','ready_for_pickup','delivered','cancelled') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pending',
  `priority` int NOT NULL DEFAULT '0' COMMENT 'Higher = more urgent',
  `estimated_completion` datetime DEFAULT NULL,
  `actual_completion` datetime DEFAULT NULL,
  `assigned_to` bigint unsigned DEFAULT NULL,
  `notes` text COLLATE utf8mb4_unicode_ci,
  `customer_notes` text COLLATE utf8mb4_unicode_ci COMMENT 'Special requests from customer',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `production_orders_order_code_unique` (`order_code`),
  KEY `production_orders_transaction_id_foreign` (`transaction_id`),
  KEY `production_orders_transaction_item_id_foreign` (`transaction_item_id`),
  KEY `production_orders_product_id_foreign` (`product_id`),
  KEY `production_orders_assigned_to_foreign` (`assigned_to`),
  CONSTRAINT `production_orders_assigned_to_foreign` FOREIGN KEY (`assigned_to`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  CONSTRAINT `production_orders_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE SET NULL,
  CONSTRAINT `production_orders_transaction_id_foreign` FOREIGN KEY (`transaction_id`) REFERENCES `transactions` (`id`) ON DELETE CASCADE,
  CONSTRAINT `production_orders_transaction_item_id_foreign` FOREIGN KEY (`transaction_item_id`) REFERENCES `transaction_items` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `production_orders` (`id`, `order_code`, `transaction_id`, `transaction_item_id`, `product_id`, `product_name`, `description`, `width`, `height`, `size_unit`, `quantity`, `file_path`, `status`, `priority`, `estimated_completion`, `actual_completion`, `assigned_to`, `notes`, `customer_notes`, `created_at`, `updated_at`) VALUES ('1', 'PRD202602130001', '1', '1', '41', 'Jasa Desain Simple', NULL, NULL, NULL, 'unit', '1', NULL, 'delivered', '0', NULL, NULL, NULL, NULL, NULL, '2026-02-13 13:30:38', '2026-02-13 13:33:13');
INSERT INTO `production_orders` (`id`, `order_code`, `transaction_id`, `transaction_item_id`, `product_id`, `product_name`, `description`, `width`, `height`, `size_unit`, `quantity`, `file_path`, `status`, `priority`, `estimated_completion`, `actual_completion`, `assigned_to`, `notes`, `customer_notes`, `created_at`, `updated_at`) VALUES ('2', 'PRD202602130002', '2', '2', '41', 'Jasa Desain Simple', NULL, NULL, NULL, 'unit', '1', NULL, 'queued', '0', NULL, NULL, NULL, NULL, NULL, '2026-02-13 13:36:49', '2026-02-13 20:14:38');
INSERT INTO `production_orders` (`id`, `order_code`, `transaction_id`, `transaction_item_id`, `product_id`, `product_name`, `description`, `width`, `height`, `size_unit`, `quantity`, `file_path`, `status`, `priority`, `estimated_completion`, `actual_completion`, `assigned_to`, `notes`, `customer_notes`, `created_at`, `updated_at`) VALUES ('3', 'PRD202602130003', '3', '3', '41', 'Jasa Desain Simple', NULL, NULL, NULL, 'unit', '1', 'production_files/1770979315_PRD202602130003.png', 'ready_for_pickup', '0', NULL, NULL, NULL, 'ini catatan', NULL, '2026-02-13 14:04:34', '2026-02-13 20:14:31');
INSERT INTO `production_orders` (`id`, `order_code`, `transaction_id`, `transaction_item_id`, `product_id`, `product_name`, `description`, `width`, `height`, `size_unit`, `quantity`, `file_path`, `status`, `priority`, `estimated_completion`, `actual_completion`, `assigned_to`, `notes`, `customer_notes`, `created_at`, `updated_at`) VALUES ('4', 'PRD202602130004', '5', '5', '44', 'Jasa Edit Foto', NULL, NULL, NULL, 'unit', '1', NULL, 'completed', '0', NULL, '2026-02-13 20:14:25', NULL, NULL, NULL, '2026-02-13 17:42:30', '2026-02-13 20:14:25');
INSERT INTO `production_orders` (`id`, `order_code`, `transaction_id`, `transaction_item_id`, `product_id`, `product_name`, `description`, `width`, `height`, `size_unit`, `quantity`, `file_path`, `status`, `priority`, `estimated_completion`, `actual_completion`, `assigned_to`, `notes`, `customer_notes`, `created_at`, `updated_at`) VALUES ('5', 'PRD202602130005', '6', '6', '44', 'Jasa Edit Foto', NULL, NULL, NULL, 'unit', '1', NULL, 'ready_for_pickup', '0', NULL, '2026-02-13 18:19:16', NULL, 'catatan penting', NULL, '2026-02-13 17:42:59', '2026-02-13 20:12:13');
INSERT INTO `production_orders` (`id`, `order_code`, `transaction_id`, `transaction_item_id`, `product_id`, `product_name`, `description`, `width`, `height`, `size_unit`, `quantity`, `file_path`, `status`, `priority`, `estimated_completion`, `actual_completion`, `assigned_to`, `notes`, `customer_notes`, `created_at`, `updated_at`) VALUES ('6', 'PRD202602130006', '7', '7', '44', 'Jasa Edit Foto', NULL, NULL, NULL, 'unit', '1', NULL, 'in_progress', '0', NULL, NULL, NULL, NULL, NULL, '2026-02-13 17:56:26', '2026-02-13 20:12:02');
INSERT INTO `production_orders` (`id`, `order_code`, `transaction_id`, `transaction_item_id`, `product_id`, `product_name`, `description`, `width`, `height`, `size_unit`, `quantity`, `file_path`, `status`, `priority`, `estimated_completion`, `actual_completion`, `assigned_to`, `notes`, `customer_notes`, `created_at`, `updated_at`) VALUES ('7', 'PRD202602130007', '8', '8', '43', 'Jasa Redraw Logo', NULL, NULL, NULL, 'unit', '1', NULL, 'pending', '0', NULL, NULL, NULL, NULL, NULL, '2026-02-13 19:33:02', '2026-02-13 20:12:21');

-- Table: products
CREATE TABLE `products` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `barcode` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Product barcode for scanning',
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `type` enum('standard','service','custom') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'standard',
  `product_group_id` bigint unsigned DEFAULT NULL,
  `variant_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'e.g. "Merah - XL"',
  `description` text COLLATE utf8mb4_unicode_ci,
  `category_id` bigint unsigned NOT NULL,
  `purchase_price` decimal(10,2) NOT NULL COMMENT 'Buying price from supplier',
  `selling_price` decimal(10,2) NOT NULL COMMENT 'Selling price to customer',
  `is_custom_price` tinyint(1) NOT NULL DEFAULT '0',
  `pricing_unit` enum('unit','m2','cm2') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'unit' COMMENT 'unit=per item, m2=per meter squared, cm2=per centimeter squared',
  `stock` int NOT NULL DEFAULT '0' COMMENT 'Current stock quantity',
  `minimum_stock` int NOT NULL DEFAULT '10' COMMENT 'Minimum stock warning level',
  `image` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Product image path',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `products_barcode_unique` (`barcode`),
  KEY `products_product_group_id_foreign` (`product_group_id`),
  KEY `products_category_id_foreign` (`category_id`),
  KEY `products_barcode_index` (`barcode`),
  KEY `products_name_index` (`name`),
  KEY `products_stock_minimum_stock_index` (`stock`,`minimum_stock`),
  CONSTRAINT `products_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE CASCADE,
  CONSTRAINT `products_product_group_id_foreign` FOREIGN KEY (`product_group_id`) REFERENCES `product_groups` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('1', 'DP-FXY-280', 'Banner Spanduk Flexi 280gr', 'custom', '1', NULL, NULL, '1', '12000.00', '25000.00', '1', 'm2', '9999', '0', NULL, '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('2', 'DP-FXY-340', 'Banner Spanduk Flexi 340gr', 'custom', '2', NULL, NULL, '1', '18000.00', '35000.00', '1', 'm2', '9999', '0', NULL, '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('3', 'DP-FXY-440', 'Banner Spanduk Flexi Korea 440gr', 'custom', '3', NULL, NULL, '1', '35000.00', '65000.00', '1', 'm2', '9999', '0', NULL, '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('4', 'DP-STK-VIN', 'Sticker Ritrama / Vinyl', 'custom', '4', NULL, NULL, '1', '45000.00', '95000.00', '1', 'm2', '9999', '0', NULL, '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('5', 'DP-STK-CRM', 'Sticker Cromo / Bontax', 'custom', '5', NULL, NULL, '1', '15000.00', '45000.00', '1', 'm2', '9999', '0', NULL, '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('6', 'DP-STK-TRN', 'Sticker Transparan', 'custom', '6', NULL, NULL, '1', '50000.00', '110000.00', '1', 'm2', '9999', '0', NULL, '2026-02-13 11:22:44', '2026-02-13 11:22:44');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('7', 'DP-STK-OWV', 'Sticker One Way Vision', 'custom', '7', NULL, NULL, '1', '65000.00', '135000.00', '1', 'm2', '9999', '0', NULL, '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('8', 'DP-XBN-SET', 'X-Banner (Set)', 'standard', '8', NULL, NULL, '1', '35000.00', '65000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('9', 'DP-YBN-SET', 'Y-Banner (Set)', 'standard', '9', NULL, NULL, '1', '45000.00', '85000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('10', 'DP-RBN-SET', 'Roll Up Banner (Set)', 'standard', '10', NULL, NULL, '1', '110000.00', '195000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('11', 'DP-BKP-3X3', 'Backdrop Portable', 'standard', '11', NULL, NULL, '1', '1500000.00', '2850000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('12', 'OP-KN-STD', 'Kartu Nama Standard', 'standard', '12', NULL, NULL, '2', '15000.00', '35000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('13', 'OP-KN-LAM', 'Kartu Nama Laminating Doff', 'standard', '13', NULL, NULL, '2', '25000.00', '55000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('14', 'OP-KN-SUV', 'Kartu Nama Spot UV', 'standard', '14', NULL, NULL, '2', '45000.00', '125000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('15', 'OP-BRS-A4-120', 'Brosur A4 Full Color', 'standard', '15', NULL, NULL, '2', '280000.00', '485000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:45', '2026-02-13 11:22:45');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('16', 'OP-BRS-A5-150', 'Brosur A5 Full Color', 'standard', '16', NULL, NULL, '2', '160000.00', '325000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('17', 'OP-NTA-2P-1/4', 'Nota NCR 2 Ply', 'standard', '17', NULL, NULL, '2', '4500.00', '10000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('18', 'OP-NTA-3P-1/2', 'Nota NCR 3 Ply', 'standard', '18', NULL, NULL, '2', '8500.00', '18500.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('19', 'OP-UDN-SFC', 'Undangan Softcover', 'standard', '19', NULL, NULL, '2', '1200.00', '3500.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('20', 'OP-UDN-HDC', 'Undangan Hardcover', 'standard', '20', NULL, NULL, '2', '5000.00', '12000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('21', 'OP-SLN-KOS', 'Sablon Kaos Plastisol', 'standard', '21', NULL, NULL, '2', '45000.00', '85000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('22', 'DOC-FC-HVS', 'Fotocopy HVS 70gr', 'service', '22', NULL, NULL, '3', '150.00', '350.00', '0', 'unit', '9999', '0', NULL, '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('23', 'DOC-PRT-WRN', 'Print Warna (Laser)', 'service', '23', NULL, NULL, '3', '500.00', '1500.00', '0', 'unit', '9999', '0', NULL, '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('24', 'DOC-PRT-IMG', 'Print Gambar Full A4', 'service', '24', NULL, NULL, '3', '1500.00', '5000.00', '0', 'unit', '9999', '0', NULL, '2026-02-13 11:22:46', '2026-02-13 11:22:46');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('25', 'DOC-JLD-MKA', 'Jilid Mika Standard', 'service', '25', NULL, NULL, '3', '2000.00', '5000.00', '0', 'unit', '9999', '0', NULL, '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('26', 'DOC-JLD-SPR', 'Jilid Spiral Kawat', 'service', '26', NULL, NULL, '3', '6000.00', '15000.00', '0', 'unit', '9999', '0', NULL, '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('27', 'DOC-JLD-HDC', 'Jilid Hardcover Skripsi', 'service', '27', NULL, NULL, '3', '15000.00', '35000.00', '0', 'unit', '9999', '0', NULL, '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('28', 'DOC-LAM-HOT', 'Laminating Panas', 'service', '28', NULL, NULL, '3', '2500.00', '6000.00', '0', 'unit', '9999', '0', NULL, '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('29', 'MC-MUG-WHT', 'Mug Putih Coating', 'standard', '29', NULL, NULL, '4', '12000.00', '25000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('30', 'MC-MUG-COL', 'Mug Dalam Warna', 'standard', '30', NULL, NULL, '4', '14000.00', '30000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('31', 'MC-IDC-PVC', 'ID Card PVC', 'standard', '31', NULL, NULL, '4', '3500.00', '12000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('32', 'MC-LAN-2CM', 'Tali Lanyard 2cm', 'standard', '32', NULL, NULL, '4', '4500.00', '15000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('33', 'MC-PIN-44', 'Pin Peniti 44mm', 'standard', '33', NULL, NULL, '4', '1500.00', '4500.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('34', 'MC-PIN-58', 'Pin Peniti 58mm', 'standard', '34', NULL, NULL, '4', '2500.00', '6500.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('35', 'MC-GCI-ACR', 'Gantungan Kunci Acrilic', 'standard', '35', NULL, NULL, '4', '6500.00', '15000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:47', '2026-02-13 11:22:47');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('36', 'MC-TML-LED', 'Tumbler Sakura LED', 'standard', '36', NULL, NULL, '4', '55000.00', '115000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('37', 'OT-PN-FXY', 'Papan Nama Toko', 'custom', '37', NULL, NULL, '5', '150000.00', '350000.00', '1', 'm2', '9999', '0', NULL, '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('38', 'OT-NB-AKR', 'Neon Box Akrilik', 'custom', '38', NULL, NULL, '5', '850000.00', '1650000.00', '1', 'm2', '9999', '0', NULL, '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('39', 'OT-NB-BKL', 'Neon Box Backlite', 'custom', '39', NULL, NULL, '5', '450000.00', '950000.00', '1', 'm2', '9999', '0', NULL, '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('40', 'OT-HT-GLV', 'Huruf Timbul Galvanis', 'custom', '40', NULL, NULL, '5', '5000.00', '12000.00', '1', 'unit', '9999', '0', NULL, '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('41', 'JS-DSN-SMP', 'Jasa Desain Simple', 'service', '41', NULL, NULL, '6', '0.00', '15000.00', '1', 'unit', '9999', '0', NULL, '2026-02-13 11:22:48', '2026-02-13 13:30:14');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('42', 'JS-DSN-CPX', 'Jasa Desain Kompleks', 'service', '42', NULL, NULL, '6', '0.00', '75000.00', '0', 'unit', '9999', '0', NULL, '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('43', 'JS-DSN-RED', 'Jasa Redraw Logo', 'service', '43', NULL, NULL, '6', '0.00', '45000.00', '0', 'unit', '9999', '0', NULL, '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('44', 'JS-DSN-EDT', 'Jasa Edit Foto', 'service', '44', NULL, NULL, '6', '0.00', '25000.00', '0', 'unit', '9999', '0', NULL, '2026-02-13 11:22:48', '2026-02-13 11:22:48');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('45', 'OF-STP-FLS', 'Stempel Flash Otomatis', 'standard', '45', NULL, NULL, '7', '15000.00', '45000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:49', '2026-02-13 11:22:49');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('46', 'OF-STP-KAY', 'Stempel Runaflex', 'standard', '46', NULL, NULL, '7', '5000.00', '25000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:49', '2026-02-13 11:22:49');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('47', 'OF-MAP-CUS', 'Map Folio Custom', 'standard', '47', NULL, NULL, '7', '3500.00', '8500.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:49', '2026-02-13 11:22:49');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('48', 'OF-AMP-CAB', 'Amplop Kabinet Airmail', 'standard', '48', NULL, NULL, '7', '25000.00', '75000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:49', '2026-02-13 11:22:49');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('49', 'OF-KOP-HVS', 'Kop Surat HVS 80gr', 'standard', '49', NULL, NULL, '7', '45000.00', '95000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:49', '2026-02-13 11:22:49');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('50', 'OF-LBL-TRN', 'Label Nama Transparan', 'standard', '50', NULL, NULL, '7', '8000.00', '18000.00', '0', 'unit', '100', '10', NULL, '2026-02-13 11:22:49', '2026-02-13 11:22:49');
INSERT INTO `products` (`id`, `barcode`, `name`, `type`, `product_group_id`, `variant_name`, `description`, `category_id`, `purchase_price`, `selling_price`, `is_custom_price`, `pricing_unit`, `stock`, `minimum_stock`, `image`, `created_at`, `updated_at`) VALUES ('51', '8678678768678678', 'Kertas A4', 'standard', '51', NULL, NULL, '7', '35000.00', '50000.00', '0', 'unit', '98', '5', NULL, '2026-02-13 16:27:32', '2026-02-13 16:28:02');

-- Table: purchase_items
CREATE TABLE `purchase_items` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `purchase_id` bigint unsigned NOT NULL,
  `product_id` bigint unsigned NOT NULL,
  `quantity` int NOT NULL,
  `unit_cost` decimal(15,2) NOT NULL,
  `total_cost` decimal(15,2) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `purchase_items_purchase_id_foreign` (`purchase_id`),
  KEY `purchase_items_product_id_foreign` (`product_id`),
  CONSTRAINT `purchase_items_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE,
  CONSTRAINT `purchase_items_purchase_id_foreign` FOREIGN KEY (`purchase_id`) REFERENCES `purchases` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table: purchases
CREATE TABLE `purchases` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `supplier_id` bigint unsigned DEFAULT NULL,
  `transaction_code` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `date` date NOT NULL,
  `total_amount` decimal(15,2) NOT NULL,
  `note` text COLLATE utf8mb4_unicode_ci,
  `user_id` bigint unsigned NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `purchases_transaction_code_unique` (`transaction_code`),
  KEY `purchases_supplier_id_foreign` (`supplier_id`),
  KEY `purchases_user_id_foreign` (`user_id`),
  CONSTRAINT `purchases_supplier_id_foreign` FOREIGN KEY (`supplier_id`) REFERENCES `suppliers` (`id`) ON DELETE SET NULL,
  CONSTRAINT `purchases_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table: sessions
CREATE TABLE `sessions` (
  `id` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `user_id` bigint unsigned DEFAULT NULL,
  `ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `user_agent` text COLLATE utf8mb4_unicode_ci,
  `payload` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `last_activity` int NOT NULL,
  PRIMARY KEY (`id`),
  KEY `sessions_user_id_index` (`user_id`),
  KEY `sessions_last_activity_index` (`last_activity`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `sessions` (`id`, `user_id`, `ip_address`, `user_agent`, `payload`, `last_activity`) VALUES ('EMDm22QH190iO7dENnJWRRA9KuZThfxFVWCKiLPj', NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36', 'YTozOntzOjY6Il90b2tlbiI7czo0MDoiT2RUSDdLOFhFWE1MMUthalJ6ZDJWNGVGSnF4VU5OSnBwU0lVOGcxOSI7czo5OiJfcHJldmlvdXMiO2E6MTp7czozOiJ1cmwiO3M6MTk6Imh0dHA6Ly9hZGstcG9zLnRlc3QiO31zOjY6Il9mbGFzaCI7YToyOntzOjM6Im9sZCI7YTowOnt9czozOiJuZXciO2E6MDp7fX19', '1770995349');
INSERT INTO `sessions` (`id`, `user_id`, `ip_address`, `user_agent`, `payload`, `last_activity`) VALUES ('mdCNu7uvYHY1pruXBiP6YQKr4KFcxI1IBL9YvkYb', '4', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36', 'YTo0OntzOjY6Il90b2tlbiI7czo0MDoiYVp1UGlpWklvVUE2WjJ2WFlhYUwxdUFRbTdPVUNEaGdnc3NzdTJEdiI7czo5OiJfcHJldmlvdXMiO2E6MTp7czozOiJ1cmwiO3M6MzU6Imh0dHA6Ly9hZGstcG9zLnRlc3Qvc2hpcHBpbmctbGFiZWxzIjt9czo2OiJfZmxhc2giO2E6Mjp7czozOiJvbGQiO2E6MDp7fXM6MzoibmV3IjthOjA6e319czo1MDoibG9naW5fd2ViXzU5YmEzNmFkZGMyYjJmOTQwMTU4MGYwMTRjN2Y1OGVhNGUzMDk4OWQiO2k6NDt9', '1770987488');
INSERT INTO `sessions` (`id`, `user_id`, `ip_address`, `user_agent`, `payload`, `last_activity`) VALUES ('ZXhP7XVd1XGKpvnGEhyy8eYnTpCB3i6WnhpqxFCu', '1', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36', 'YTo1OntzOjY6Il90b2tlbiI7czo0MDoiTjNjdWhXaVR6bjJrT2ZoOHJZdHRSR09kTFhBQVJxdTIzWVdWRWpBciI7czozOiJ1cmwiO2E6MDp7fXM6OToiX3ByZXZpb3VzIjthOjE6e3M6MzoidXJsIjtzOjI2OiJodHRwOi8vYWRrLXBvcy50ZXN0L2JhY2t1cCI7fXM6NjoiX2ZsYXNoIjthOjI6e3M6Mzoib2xkIjthOjA6e31zOjM6Im5ldyI7YTowOnt9fXM6NTA6ImxvZ2luX3dlYl81OWJhMzZhZGRjMmIyZjk0MDE1ODBmMDE0YzdmNThlYTRlMzA5ODlkIjtpOjE7fQ==', '1770996143');

-- Table: settings
CREATE TABLE `settings` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `store_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Minimarket POS',
  `store_address` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `store_phone` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `store_logo` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `store_description` text COLLATE utf8mb4_unicode_ci,
  `tax_rate` decimal(5,2) NOT NULL DEFAULT '0.00',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  `theme_color` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '#4f46e5',
  `secondary_color` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '#a855f7',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `settings` (`id`, `store_name`, `store_address`, `store_phone`, `store_logo`, `store_description`, `tax_rate`, `created_at`, `updated_at`, `theme_color`, `secondary_color`) VALUES ('1', 'ADK-POS', 'Jl. Contoh No. 123, Jakarta Selatan', '(021) 1234-5678', NULL, 'Sistem Point of Sale modern untuk mengelola bisnis toko Anda dengan mudah dan efisien', '0.00', '2026-02-13 11:22:43', '2026-02-13 20:09:06', '#0d9488', '#be185d');

-- Table: stock_movements
CREATE TABLE `stock_movements` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `product_id` bigint unsigned NOT NULL,
  `type` enum('in','out') COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Stock movement type: in (purchase) or out (sale)',
  `quantity` int NOT NULL COMMENT 'Quantity moved',
  `reference_type` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Reference model type (transaction, purchase, etc.)',
  `reference_id` bigint unsigned DEFAULT NULL COMMENT 'Reference model ID',
  `notes` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `stock_movements_product_id_type_index` (`product_id`,`type`),
  KEY `stock_movements_reference_type_reference_id_index` (`reference_type`,`reference_id`),
  KEY `stock_movements_created_at_index` (`created_at`),
  CONSTRAINT `stock_movements_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `stock_movements` (`id`, `product_id`, `type`, `quantity`, `reference_type`, `reference_id`, `notes`, `created_at`, `updated_at`) VALUES ('1', '51', 'in', '99', NULL, NULL, 'Stok awal produk', '2026-02-13 16:27:32', '2026-02-13 16:27:32');
INSERT INTO `stock_movements` (`id`, `product_id`, `type`, `quantity`, `reference_type`, `reference_id`, `notes`, `created_at`, `updated_at`) VALUES ('2', '51', 'out', '1', 'App\\Models\\Transaction', '4', 'Penjualan - TRX202602130004', '2026-02-13 16:28:02', '2026-02-13 16:28:02');

-- Table: suppliers
CREATE TABLE `suppliers` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `contact_person` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `phone` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `address` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `suppliers_name_index` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Table: transaction_items
CREATE TABLE `transaction_items` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `transaction_id` bigint unsigned NOT NULL,
  `product_id` bigint unsigned NOT NULL,
  `quantity` int NOT NULL,
  `custom_width` decimal(8,2) DEFAULT NULL COMMENT 'In meters or cm',
  `custom_height` decimal(8,2) DEFAULT NULL COMMENT 'In meters or cm',
  `price` decimal(10,2) NOT NULL COMMENT 'Selling price at time of transaction',
  `subtotal` decimal(10,2) NOT NULL COMMENT 'Quantity * Price',
  `note` text COLLATE utf8mb4_unicode_ci,
  `file_path` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `transaction_items_product_id_foreign` (`product_id`),
  KEY `transaction_items_transaction_id_product_id_index` (`transaction_id`,`product_id`),
  CONSTRAINT `transaction_items_product_id_foreign` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`),
  CONSTRAINT `transaction_items_transaction_id_foreign` FOREIGN KEY (`transaction_id`) REFERENCES `transactions` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `transaction_items` (`id`, `transaction_id`, `product_id`, `quantity`, `custom_width`, `custom_height`, `price`, `subtotal`, `note`, `file_path`, `created_at`, `updated_at`) VALUES ('1', '1', '41', '1', NULL, NULL, '15000.00', '15000.00', NULL, NULL, '2026-02-13 13:30:37', '2026-02-13 13:30:37');
INSERT INTO `transaction_items` (`id`, `transaction_id`, `product_id`, `quantity`, `custom_width`, `custom_height`, `price`, `subtotal`, `note`, `file_path`, `created_at`, `updated_at`) VALUES ('2', '2', '41', '1', NULL, NULL, '30000.00', '30000.00', NULL, NULL, '2026-02-13 13:36:49', '2026-02-13 13:36:49');
INSERT INTO `transaction_items` (`id`, `transaction_id`, `product_id`, `quantity`, `custom_width`, `custom_height`, `price`, `subtotal`, `note`, `file_path`, `created_at`, `updated_at`) VALUES ('3', '3', '41', '1', NULL, NULL, '20000.00', '20000.00', NULL, NULL, '2026-02-13 14:04:33', '2026-02-13 14:04:33');
INSERT INTO `transaction_items` (`id`, `transaction_id`, `product_id`, `quantity`, `custom_width`, `custom_height`, `price`, `subtotal`, `note`, `file_path`, `created_at`, `updated_at`) VALUES ('4', '4', '51', '1', NULL, NULL, '50000.00', '50000.00', NULL, NULL, '2026-02-13 16:28:02', '2026-02-13 16:28:02');
INSERT INTO `transaction_items` (`id`, `transaction_id`, `product_id`, `quantity`, `custom_width`, `custom_height`, `price`, `subtotal`, `note`, `file_path`, `created_at`, `updated_at`) VALUES ('5', '5', '44', '1', NULL, NULL, '25000.00', '25000.00', NULL, NULL, '2026-02-13 17:42:30', '2026-02-13 17:42:30');
INSERT INTO `transaction_items` (`id`, `transaction_id`, `product_id`, `quantity`, `custom_width`, `custom_height`, `price`, `subtotal`, `note`, `file_path`, `created_at`, `updated_at`) VALUES ('6', '6', '44', '1', NULL, NULL, '25000.00', '25000.00', NULL, NULL, '2026-02-13 17:42:59', '2026-02-13 17:42:59');
INSERT INTO `transaction_items` (`id`, `transaction_id`, `product_id`, `quantity`, `custom_width`, `custom_height`, `price`, `subtotal`, `note`, `file_path`, `created_at`, `updated_at`) VALUES ('7', '7', '44', '1', NULL, NULL, '25000.00', '25000.00', NULL, NULL, '2026-02-13 17:56:26', '2026-02-13 17:56:26');
INSERT INTO `transaction_items` (`id`, `transaction_id`, `product_id`, `quantity`, `custom_width`, `custom_height`, `price`, `subtotal`, `note`, `file_path`, `created_at`, `updated_at`) VALUES ('8', '8', '43', '1', NULL, NULL, '45000.00', '45000.00', NULL, NULL, '2026-02-13 19:33:02', '2026-02-13 19:33:02');

-- Table: transactions
CREATE TABLE `transactions` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `transaction_code` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Unique transaction code',
  `user_id` bigint unsigned NOT NULL,
  `subtotal` decimal(12,2) NOT NULL,
  `discount` decimal(10,2) NOT NULL DEFAULT '0.00',
  `tax` decimal(10,2) NOT NULL DEFAULT '0.00',
  `total_amount` decimal(12,2) NOT NULL,
  `payment_method` enum('cash','utang','card','ewallet','transfer') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'cash',
  `amount_paid` decimal(12,2) NOT NULL,
  `down_payment` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT 'Uang muka/DP yang dibayar',
  `remaining_amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT 'Sisa yang harus dibayar (total - down_payment)',
  `change_amount` decimal(10,2) NOT NULL DEFAULT '0.00',
  `status` enum('pending','processing','completed','cancelled') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'completed',
  `payment_status` enum('unpaid','partial','paid') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'paid',
  `customer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT 'Umum',
  `note` text COLLATE utf8mb4_unicode_ci,
  `store_type` enum('offline','online') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'offline' COMMENT 'offline=toko fisik, online=pengiriman ekspedisi',
  `recipient_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `recipient_phone` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `recipient_address` text COLLATE utf8mb4_unicode_ci,
  `recipient_city` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `recipient_postal_code` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `shipping_courier` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'JNE, JNT, SiCepat, AnterAja, dll',
  `shipping_tracking_number` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `shipping_status` enum('pending','shipped','delivered') COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  `due_date` date DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `transactions_transaction_code_unique` (`transaction_code`),
  KEY `transactions_transaction_code_index` (`transaction_code`),
  KEY `transactions_user_id_created_at_index` (`user_id`,`created_at`),
  KEY `transactions_status_index` (`status`),
  KEY `transactions_store_type_index` (`store_type`),
  KEY `transactions_shipping_status_index` (`shipping_status`),
  CONSTRAINT `transactions_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `transactions` (`id`, `transaction_code`, `user_id`, `subtotal`, `discount`, `tax`, `total_amount`, `payment_method`, `amount_paid`, `down_payment`, `remaining_amount`, `change_amount`, `status`, `payment_status`, `customer_name`, `note`, `store_type`, `recipient_name`, `recipient_phone`, `recipient_address`, `recipient_city`, `recipient_postal_code`, `shipping_courier`, `shipping_tracking_number`, `shipping_status`, `created_at`, `updated_at`, `due_date`) VALUES ('1', 'TRX202602130001', '1', '15000.00', '0.00', '0.00', '15000.00', 'cash', '15000.00', '0.00', '0.00', '5000.00', 'completed', 'paid', 'Umum', NULL, 'offline', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-02-13 13:30:37', '2026-02-13 13:33:13', NULL);
INSERT INTO `transactions` (`id`, `transaction_code`, `user_id`, `subtotal`, `discount`, `tax`, `total_amount`, `payment_method`, `amount_paid`, `down_payment`, `remaining_amount`, `change_amount`, `status`, `payment_status`, `customer_name`, `note`, `store_type`, `recipient_name`, `recipient_phone`, `recipient_address`, `recipient_city`, `recipient_postal_code`, `shipping_courier`, `shipping_tracking_number`, `shipping_status`, `created_at`, `updated_at`, `due_date`) VALUES ('2', 'TRX202602130002', '1', '30000.00', '0.00', '0.00', '30000.00', 'cash', '30000.00', '0.00', '0.00', '0.00', 'completed', 'paid', 'Umum', NULL, 'offline', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-02-13 13:36:49', '2026-02-13 13:38:02', NULL);
INSERT INTO `transactions` (`id`, `transaction_code`, `user_id`, `subtotal`, `discount`, `tax`, `total_amount`, `payment_method`, `amount_paid`, `down_payment`, `remaining_amount`, `change_amount`, `status`, `payment_status`, `customer_name`, `note`, `store_type`, `recipient_name`, `recipient_phone`, `recipient_address`, `recipient_city`, `recipient_postal_code`, `shipping_courier`, `shipping_tracking_number`, `shipping_status`, `created_at`, `updated_at`, `due_date`) VALUES ('3', 'TRX202602130003', '1', '20000.00', '0.00', '0.00', '20000.00', 'transfer', '20000.00', '0.00', '0.00', '0.00', 'completed', 'paid', 'Umum', 'Catatan aja', 'online', 'Andri', '08123456789', 'Jl.Pagendingan Ds.Jatihurip Kec.Cisayong
Nomer 6', 'Kab.Tasikmalaya', '46153', 'Lainnya', '576tyrtr7657', 'delivered', '2026-02-13 14:04:33', '2026-02-13 19:50:11', NULL);
INSERT INTO `transactions` (`id`, `transaction_code`, `user_id`, `subtotal`, `discount`, `tax`, `total_amount`, `payment_method`, `amount_paid`, `down_payment`, `remaining_amount`, `change_amount`, `status`, `payment_status`, `customer_name`, `note`, `store_type`, `recipient_name`, `recipient_phone`, `recipient_address`, `recipient_city`, `recipient_postal_code`, `shipping_courier`, `shipping_tracking_number`, `shipping_status`, `created_at`, `updated_at`, `due_date`) VALUES ('4', 'TRX202602130004', '1', '50000.00', '0.00', '0.00', '50000.00', 'cash', '50000.00', '0.00', '0.00', '0.00', 'completed', 'paid', 'Umum', 'Titipn', 'offline', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-02-13 16:28:02', '2026-02-13 16:28:02', NULL);
INSERT INTO `transactions` (`id`, `transaction_code`, `user_id`, `subtotal`, `discount`, `tax`, `total_amount`, `payment_method`, `amount_paid`, `down_payment`, `remaining_amount`, `change_amount`, `status`, `payment_status`, `customer_name`, `note`, `store_type`, `recipient_name`, `recipient_phone`, `recipient_address`, `recipient_city`, `recipient_postal_code`, `shipping_courier`, `shipping_tracking_number`, `shipping_status`, `created_at`, `updated_at`, `due_date`) VALUES ('5', 'TRX202602130005', '1', '25000.00', '0.00', '0.00', '25000.00', 'cash', '25000.00', '0.00', '0.00', '0.00', 'pending', 'paid', 'Umum', NULL, 'offline', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-02-13 17:42:30', '2026-02-13 17:42:30', NULL);
INSERT INTO `transactions` (`id`, `transaction_code`, `user_id`, `subtotal`, `discount`, `tax`, `total_amount`, `payment_method`, `amount_paid`, `down_payment`, `remaining_amount`, `change_amount`, `status`, `payment_status`, `customer_name`, `note`, `store_type`, `recipient_name`, `recipient_phone`, `recipient_address`, `recipient_city`, `recipient_postal_code`, `shipping_courier`, `shipping_tracking_number`, `shipping_status`, `created_at`, `updated_at`, `due_date`) VALUES ('6', 'TRX202602130006', '1', '25000.00', '0.00', '0.00', '25000.00', 'cash', '25000.00', '0.00', '0.00', '0.00', 'pending', 'paid', 'Umum', 'Ini catatan penting', 'offline', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-02-13 17:42:59', '2026-02-13 17:42:59', NULL);
INSERT INTO `transactions` (`id`, `transaction_code`, `user_id`, `subtotal`, `discount`, `tax`, `total_amount`, `payment_method`, `amount_paid`, `down_payment`, `remaining_amount`, `change_amount`, `status`, `payment_status`, `customer_name`, `note`, `store_type`, `recipient_name`, `recipient_phone`, `recipient_address`, `recipient_city`, `recipient_postal_code`, `shipping_courier`, `shipping_tracking_number`, `shipping_status`, `created_at`, `updated_at`, `due_date`) VALUES ('7', 'TRX202602130007', '1', '25000.00', '0.00', '0.00', '25000.00', 'cash', '25000.00', '0.00', '0.00', '0.00', 'pending', 'paid', 'Umum', 'vvvvvvvvvv', 'offline', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-02-13 17:56:26', '2026-02-13 17:56:26', NULL);
INSERT INTO `transactions` (`id`, `transaction_code`, `user_id`, `subtotal`, `discount`, `tax`, `total_amount`, `payment_method`, `amount_paid`, `down_payment`, `remaining_amount`, `change_amount`, `status`, `payment_status`, `customer_name`, `note`, `store_type`, `recipient_name`, `recipient_phone`, `recipient_address`, `recipient_city`, `recipient_postal_code`, `shipping_courier`, `shipping_tracking_number`, `shipping_status`, `created_at`, `updated_at`, `due_date`) VALUES ('8', 'TRX202602130008', '1', '45000.00', '0.00', '0.00', '45000.00', 'cash', '45000.00', '0.00', '0.00', '0.00', 'completed', 'paid', 'Umum', NULL, 'offline', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2026-02-13 19:33:02', '2026-02-13 20:12:16', NULL);

