109 lines
3.9 KiB
SQL
109 lines
3.9 KiB
SQL
-- 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;
|