46 lines
1.9 KiB
SQL
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;
|