38395-vm/db/migrations/2026_02_13_v2_enterprise.sql
Flatlogic Bot 4ad8ad11c8 sadiq
2026-02-13 08:34:16 +00:00

46 lines
1.9 KiB
SQL

-- Update Users table: add status and possibly other fields if needed
-- Users already has 'role' ENUM('admin', 'user')
-- Update Cars table
ALTER TABLE cars ADD COLUMN owner_id INT NULL AFTER id;
ALTER TABLE cars ADD COLUMN approval_status ENUM('pending', 'approved', 'rejected') DEFAULT 'approved' AFTER status;
ALTER TABLE cars ADD COLUMN view_count INT DEFAULT 0 AFTER approval_status;
ALTER TABLE cars ADD COLUMN badge VARCHAR(50) NULL AFTER view_count;
ALTER TABLE cars ADD CONSTRAINT fk_cars_owner FOREIGN KEY (owner_id) REFERENCES users(id) ON DELETE SET NULL;
-- Reviews Table
CREATE TABLE IF NOT EXISTS reviews (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
car_id INT NOT NULL,
rating INT NOT NULL CHECK (rating >= 1 AND rating <= 5),
comment TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY (car_id) REFERENCES cars(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Notifications Table
CREATE TABLE IF NOT EXISTS notifications (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NULL, -- NULL means it might be for all admins or system-wide
message TEXT NOT NULL,
type VARCHAR(50) DEFAULT 'info', -- 'new_car', 'new_booking', 'new_purchase'
is_read TINYINT(1) DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- Purchases Table (Simulation)
CREATE TABLE IF NOT EXISTS purchases (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
car_id INT NOT NULL,
amount DECIMAL(12, 2) NOT NULL,
bank_name VARCHAR(100) NOT NULL,
transaction_id VARCHAR(100) NOT NULL,
status ENUM('pending', 'completed', 'failed') DEFAULT 'completed',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY (car_id) REFERENCES cars(id) ON DELETE CASCADE
) ENGINE=InnoDB;