-- Full Schema for APK Portal SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; SET FOREIGN_KEY_CHECKS=0; -- -------------------------------------------------------- -- Table structure for table `settings` CREATE TABLE IF NOT EXISTS `settings` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `setting_key` VARCHAR(255) UNIQUE, `setting_value` TEXT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Table structure for table `users` CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `password` varchar(255) NOT NULL, `referral_code` varchar(20) DEFAULT NULL, `referred_by` int(11) DEFAULT NULL, `role` varchar(20) DEFAULT 'user', `points` int(11) DEFAULT 0, `total_referrals` int(11) DEFAULT 0, `balance` decimal(15,2) DEFAULT 0.00, `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), UNIQUE KEY `referral_code` (`referral_code`), KEY `referred_by` (`referred_by`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Table structure for table `categories` CREATE TABLE IF NOT EXISTS `categories` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `slug` varchar(100) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `slug` (`slug`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Table structure for table `apks` CREATE TABLE IF NOT EXISTS `apks` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `slug` varchar(255) NOT NULL, `version` varchar(50) DEFAULT NULL, `description` text DEFAULT NULL, `image_url` varchar(255) DEFAULT NULL, `icon_path` varchar(255) DEFAULT NULL, `download_url` varchar(255) DEFAULT NULL, `category_id` int(11) DEFAULT NULL, `total_downloads` int(11) DEFAULT 0, `is_vip` tinyint(1) DEFAULT 0, `status` enum('published','draft') DEFAULT 'published', `display_order` int(11) DEFAULT 0, `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `slug` (`slug`), KEY `category_id` (`category_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Table structure for table `withdrawals` CREATE TABLE IF NOT EXISTS `withdrawals` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `amount` decimal(15,2) NOT NULL, `method` varchar(50) NOT NULL, `account_details` text NOT NULL, `status` enum('pending','approved','rejected') DEFAULT 'pending', `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), CONSTRAINT `withdrawals_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Table structure for table `referral_downloads` CREATE TABLE IF NOT EXISTS `referral_downloads` ( `id` int(11) NOT NULL AUTO_INCREMENT, `referrer_id` int(11) NOT NULL, `apk_id` int(11) NOT NULL, `ip_address` varchar(45) NOT NULL, `amount` decimal(15,2) DEFAULT 500.00, `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `referrer_id` (`referrer_id`), KEY `apk_id` (`apk_id`), CONSTRAINT `referral_downloads_ibfk_1` FOREIGN KEY (`referrer_id`) REFERENCES `users` (`id`), CONSTRAINT `referral_downloads_ibfk_2` FOREIGN KEY (`apk_id`) REFERENCES `apks` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Default Data INSERT IGNORE INTO `settings` (`setting_key`, `setting_value`) VALUES ('site_name', 'ApkNusa'), ('site_icon', ''), ('site_favicon', ''), ('meta_description', 'Download the latest APKs for free.'), ('meta_keywords', 'apk, download, android, games, apps'), ('head_js', ''), ('body_js', ''); INSERT IGNORE INTO `users` (`username`, `password`, `role`) VALUES ('admin', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'admin'); -- password: admin123 INSERT IGNORE INTO `categories` (`name`, `slug`) VALUES ('Games', 'games'), ('Apps', 'apps'), ('Tools', 'tools'); SET FOREIGN_KEY_CHECKS=1; COMMIT;