[
  {
    "type": "create_table",
    "description": "Create billingLineItems table for invoice line items",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW TABLES LIKE 'billingLineItems'",
    "sql": "CREATE TABLE `billingLineItems` (`id` int unsigned NOT NULL AUTO_INCREMENT, `invoiceId` int unsigned NOT NULL, `lineItemType` enum('base_subscription','premium_module','sms_usage','sms_included','manual_adjustment') NOT NULL, `description` varchar(255) NOT NULL, `smsCategory` enum('buy_completion','service_completion','survey','chat_transactional','chat_interactive','marketing','custom') DEFAULT NULL COMMENT 'Only for SMS line items', `quantity` int unsigned NOT NULL DEFAULT 1, `unitRate` decimal(10,4) NOT NULL DEFAULT 0.0000, `totalAmount` decimal(10,2) NOT NULL DEFAULT 0.00, `sortOrder` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'Display ordering on invoice', `metadata` json DEFAULT NULL COMMENT 'Additional context', `createdAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `idx_invoice` (`invoiceId`), KEY `idx_type` (`lineItemType`), CONSTRAINT `fk_lineitem_invoice` FOREIGN KEY (`invoiceId`) REFERENCES `billingInvoices` (`id`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Invoice line items'"
  }
]
