90 lines
3.3 KiB
SQL
90 lines
3.3 KiB
SQL
-- Full Schema for APK Portal
|
|
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
|
START TRANSACTION;
|
|
SET time_zone = "+00:00";
|
|
|
|
-- --------------------------------------------------------
|
|
|
|
-- 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 `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');
|
|
|
|
COMMIT;
|