122 lines
3.8 KiB
SQL
122 lines
3.8 KiB
SQL
-- AfgCars Database Schema
|
|
|
|
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
|
START TRANSACTION;
|
|
SET time_zone = "+00:00";
|
|
|
|
--
|
|
-- Table structure for table `users`
|
|
--
|
|
|
|
CREATE TABLE IF NOT EXISTS `users` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(100) NOT NULL,
|
|
`email` varchar(100) NOT NULL UNIQUE,
|
|
`password` varchar(255) NOT NULL,
|
|
`role` enum('guest','user','admin') DEFAULT 'user',
|
|
`status` enum('active','inactive') DEFAULT 'active',
|
|
`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
`deleted_at` timestamp NULL DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
--
|
|
-- Dumping data for table `users`
|
|
--
|
|
|
|
INSERT INTO `users` (`name`, `email`, `password`, `role`) VALUES
|
|
('Admin', 'admin@gmail.com', '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', 'admin');
|
|
-- Default password is '12345678'
|
|
|
|
--
|
|
-- Table structure for table `cars`
|
|
--
|
|
|
|
CREATE TABLE IF NOT EXISTS `cars` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`user_id` int(11) NOT NULL,
|
|
`brand` varchar(50) NOT NULL,
|
|
`model` varchar(50) NOT NULL,
|
|
`year` int(11) NOT NULL,
|
|
`price` decimal(10,2) NOT NULL,
|
|
`city` varchar(50) NOT NULL,
|
|
`description` text,
|
|
`status` enum('pending','approved','rejected','sold') DEFAULT 'pending',
|
|
`is_hot_deal` boolean DEFAULT FALSE,
|
|
`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
`deleted_at` timestamp NULL DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `user_id` (`user_id`),
|
|
CONSTRAINT `cars_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
--
|
|
-- Table structure for table `car_images`
|
|
--
|
|
|
|
CREATE TABLE IF NOT EXISTS `car_images` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`car_id` int(11) NOT NULL,
|
|
`image_path` varchar(255) NOT NULL,
|
|
`is_main` boolean DEFAULT FALSE,
|
|
PRIMARY KEY (`id`),
|
|
KEY `car_id` (`car_id`),
|
|
CONSTRAINT `car_images_ibfk_1` FOREIGN KEY (`car_id`) REFERENCES `cars` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
--
|
|
-- Table structure for table `reviews`
|
|
--
|
|
|
|
CREATE TABLE IF NOT EXISTS `reviews` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`car_id` int(11) NOT NULL,
|
|
`user_id` int(11) NOT NULL,
|
|
`rating` int(11) DEFAULT NULL CHECK (`rating` >= 1 and `rating` <= 5),
|
|
`comment` text,
|
|
`status` enum('pending','approved') DEFAULT 'pending',
|
|
`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `car_id` (`car_id`),
|
|
KEY `user_id` (`user_id`),
|
|
CONSTRAINT `reviews_ibfk_1` FOREIGN KEY (`car_id`) REFERENCES `cars` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `reviews_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
--
|
|
-- Table structure for table `purchases`
|
|
--
|
|
|
|
CREATE TABLE IF NOT EXISTS `purchases` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`car_id` int(11) NOT NULL,
|
|
`user_id` int(11) NOT NULL,
|
|
`buyer_name` varchar(100) DEFAULT NULL,
|
|
`buyer_email` varchar(100) DEFAULT NULL,
|
|
`buyer_phone` varchar(20) DEFAULT NULL,
|
|
`status` enum('pending','completed','cancelled') DEFAULT 'pending',
|
|
`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `car_id` (`car_id`),
|
|
KEY `user_id` (`user_id`),
|
|
CONSTRAINT `purchases_ibfk_1` FOREIGN KEY (`car_id`) REFERENCES `cars` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `purchases_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
--
|
|
-- Table structure for table `contact_messages`
|
|
--
|
|
|
|
CREATE TABLE IF NOT EXISTS `contact_messages` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(100) DEFAULT NULL,
|
|
`email` varchar(100) DEFAULT NULL,
|
|
`subject` varchar(200) DEFAULT NULL,
|
|
`message` text,
|
|
`status` enum('unread','read','answered') DEFAULT 'unread',
|
|
`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
COMMIT;
|