38873-vm/db/migrations/01_initial_schema.sql
Flatlogic Bot 21f3fc7eab v2
2026-02-28 15:08:46 +00:00

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
);