|
|
CREATE DATABASE IF NOT EXISTS defaultdb; |
|
|
USE defaultdb; |
|
|
|
|
|
CREATE TABLE admins ( |
|
|
id INT AUTO_INCREMENT PRIMARY KEY, |
|
|
username VARCHAR(255) NOT NULL UNIQUE, |
|
|
email VARCHAR(255) NOT NULL UNIQUE, |
|
|
password VARCHAR(255) NOT NULL, |
|
|
full_name VARCHAR(255) NOT NULL, |
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
|
|
); |
|
|
|
|
|
CREATE TABLE users ( |
|
|
id INT AUTO_INCREMENT PRIMARY KEY, |
|
|
username VARCHAR(255) NOT NULL UNIQUE, |
|
|
email VARCHAR(255) NOT NULL UNIQUE, |
|
|
password VARCHAR(255) NOT NULL, |
|
|
full_name VARCHAR(255) NOT NULL, |
|
|
dob DATE NOT NULL, |
|
|
address TEXT NOT NULL, |
|
|
country VARCHAR(100) NOT NULL, |
|
|
zip_code VARCHAR(20) NOT NULL, |
|
|
phone_number VARCHAR(20) NOT NULL, |
|
|
balance DECIMAL(10,2) DEFAULT 0.00, |
|
|
kyc_status VARCHAR(50) DEFAULT 'not_submitted', |
|
|
withdrawal_status VARCHAR(50) DEFAULT 'active', |
|
|
status VARCHAR(50) DEFAULT 'active', |
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
|
|
); |
|
|
|
|
|
CREATE TABLE kyc_documents ( |
|
|
id INT AUTO_INCREMENT PRIMARY KEY, |
|
|
user_id INT, |
|
|
document_category VARCHAR(50) NOT NULL, |
|
|
document_type VARCHAR(50) NOT NULL, |
|
|
file_path VARCHAR(255) NOT NULL, |
|
|
status VARCHAR(50) DEFAULT 'pending', |
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE |
|
|
); |
|
|
|
|
|
CREATE TABLE investment_plans ( |
|
|
id INT AUTO_INCREMENT PRIMARY KEY, |
|
|
name VARCHAR(255) NOT NULL, |
|
|
roi DECIMAL(5,2) NOT NULL, |
|
|
tenure INT NOT NULL, |
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
|
|
); |
|
|
|
|
|
CREATE TABLE investments ( |
|
|
id INT AUTO_INCREMENT PRIMARY KEY, |
|
|
user_id INT, |
|
|
plan_id INT, |
|
|
amount DECIMAL(10,2) NOT NULL, |
|
|
status VARCHAR(50) DEFAULT 'active', |
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE, |
|
|
FOREIGN KEY (plan_id) REFERENCES investment_plans(id) ON DELETE SET NULL |
|
|
); |
|
|
|
|
|
CREATE TABLE payment_methods ( |
|
|
id INT AUTO_INCREMENT PRIMARY KEY, |
|
|
crypto_name VARCHAR(255) NOT NULL, |
|
|
wallet_address VARCHAR(255) NOT NULL, |
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
|
|
); |
|
|
|
|
|
CREATE TABLE transactions ( |
|
|
id INT AUTO_INCREMENT PRIMARY KEY, |
|
|
user_id INT, |
|
|
type VARCHAR(50) NOT NULL, |
|
|
amount DECIMAL(10,2) NOT NULL, |
|
|
status VARCHAR(50) DEFAULT 'pending', |
|
|
wallet_address VARCHAR(255), |
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE |
|
|
); |
|
|
|
|
|
CREATE TABLE messages ( |
|
|
id INT AUTO_INCREMENT PRIMARY KEY, |
|
|
user_id INT, |
|
|
message TEXT NOT NULL, |
|
|
is_read BOOLEAN NOT NULL DEFAULT FALSE, |
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE |
|
|
); |
|
|
|
|
|
CREATE TABLE testimonials ( |
|
|
id INT AUTO_INCREMENT PRIMARY KEY, |
|
|
author VARCHAR(255) NOT NULL, |
|
|
content TEXT NOT NULL, |
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
|
|
); |
|
|
|
|
|
CREATE TABLE withdrawals ( |
|
|
id INT AUTO_INCREMENT PRIMARY KEY, |
|
|
username VARCHAR(255) NOT NULL, |
|
|
amount DECIMAL(10,2) NOT NULL, |
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
|
|
); |