fellybikush's picture
Upload 99 files
0dff816 verified
raw
history blame
3.76 kB
CREATE TABLE `users` (
`id` int NOT NULL AUTO_INCREMENT,
`user_type` enum('marketer','agent','admin') DEFAULT 'marketer',
`referred_by` int DEFAULT NULL,
`username` varchar(50) NOT NULL,
`email` varchar(100) NOT NULL,
`country` varchar(2) NOT NULL,
`phone_number` varchar(20) NOT NULL,
`tier` enum('Basic','Premium') DEFAULT 'Basic',
`current_package_id` int DEFAULT NULL,
`package_start_date` datetime DEFAULT NULL,
`package_end_date` datetime DEFAULT NULL,
`package` enum('None','NOVA','SUPERIOR','GOLD') DEFAULT 'None',
`balance` decimal(10,2) DEFAULT '0.00',
`verification_token` varchar(100) DEFAULT NULL,
`reset_token` varchar(100) DEFAULT NULL,
`reset_token_expiry` datetime DEFAULT NULL,
`total_invested` decimal(15,2) DEFAULT '0.00',
`total_earnings` decimal(15,2) DEFAULT '0.00',
`total_deposits` decimal(10,2) DEFAULT '0.00',
`total_withdrawals` decimal(10,2) DEFAULT '0.00',
`rewards` decimal(10,2) DEFAULT '0.00',
`meta_earnings` decimal(10,2) DEFAULT '0.00',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`last_login` timestamp NULL DEFAULT NULL,
`pin_hash` varchar(255) DEFAULT '',
`password_hash` varchar(255) NOT NULL,
`currency` varchar(3) DEFAULT 'KES',
`exchange_rate` decimal(10,4) DEFAULT '1.0000',
`referral_code` varchar(20) DEFAULT NULL,
`is_active` tinyint(1) DEFAULT '1',
`login_attempts` int DEFAULT '0',
`last_login_attempt` timestamp NULL DEFAULT NULL,
`account_status` enum('active','suspended','pending') DEFAULT 'active',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`),
UNIQUE KEY `referral_code` (`referral_code`),
KEY `idx_users_email` (`email`),
KEY `idx_users_username` (`username`),
KEY `idx_account_status` (`account_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `user_sessions` (
`id` int NOT NULL AUTO_INCREMENT,
`user_id` int NOT NULL,
`session_id` varchar(128) NOT NULL,
`ip_address` varchar(45) DEFAULT NULL,
`user_agent` text,
`login_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`last_activity` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`expires_at` datetime NOT NULL,
`is_active` tinyint(1) DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `session_id` (`session_id`),
KEY `user_id` (`user_id`),
KEY `idx_expires_at` (`expires_at`),
KEY `idx_is_active` (`is_active`),
CONSTRAINT `user_sessions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `user_activity_log` (
`id` int NOT NULL AUTO_INCREMENT,
`user_id` int NOT NULL,
`activity_type` varchar(50) NOT NULL,
`description` text,
`ip_address` varchar(45) DEFAULT NULL,
`user_agent` text,
`metadata` json DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `idx_activity_type` (`activity_type`),
KEY `idx_created_at` (`created_at`),
CONSTRAINT `user_activity_log_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
INSERT INTO `users` (
`username`, `email`, `country`, `phone_number`, `password_hash`, `referral_code`, `tier`, `package`
) VALUES
('admin', 'admin@jmotors.com', 'KE', '+254700000000', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'ADMIN001', 'Premium', 'GOLD'),
('testuser', 'test@jmotors.com', 'KE', '+254711111111', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'TEST002', 'Basic', 'NOVA');