59 lines
2.0 KiB
SQL
59 lines
2.0 KiB
SQL
CREATE TABLE IF NOT EXISTS users (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
full_name VARCHAR(255) NOT NULL,
|
|
email VARCHAR(255) NOT NULL UNIQUE,
|
|
password VARCHAR(255) NOT NULL,
|
|
role ENUM('founder', 'investor') NOT NULL,
|
|
university VARCHAR(255),
|
|
graduation_year INT,
|
|
bio TEXT,
|
|
interests TEXT, -- Store as JSON or comma-separated tags
|
|
investment_appetite VARCHAR(255),
|
|
verified TINYINT(1) DEFAULT 0,
|
|
verification_code VARCHAR(100),
|
|
profile_photo VARCHAR(255),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS startups (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(255) NOT NULL,
|
|
description TEXT NOT NULL,
|
|
founder_id INT NOT NULL,
|
|
funding_target DECIMAL(15, 2),
|
|
funding_raised DECIMAL(15, 2) DEFAULT 0.00,
|
|
status ENUM('public', 'private') DEFAULT 'public',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (founder_id) REFERENCES users(id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS investments (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
investor_id INT NOT NULL,
|
|
startup_id INT NOT NULL,
|
|
amount DECIMAL(15, 2) NOT NULL,
|
|
status ENUM('pending', 'approved', 'rejected') DEFAULT 'pending',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (investor_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
FOREIGN KEY (startup_id) REFERENCES startups(id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS messages (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
sender_id INT NOT NULL,
|
|
receiver_id INT NOT NULL,
|
|
content TEXT NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (sender_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
FOREIGN KEY (receiver_id) REFERENCES users(id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS notifications (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
user_id INT NOT NULL,
|
|
content TEXT NOT NULL,
|
|
is_read TINYINT(1) DEFAULT 0,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
);
|