generated from MokoConsulting/Template-Joomla
153 lines
6.1 KiB
SQL
153 lines
6.1 KiB
SQL
--
|
|
-- MokoSuite Auto Tables
|
|
--
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuiteauto_vehicles` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`vin` CHAR(17) NOT NULL,
|
|
`stock_number` VARCHAR(20) NOT NULL DEFAULT '',
|
|
`year` SMALLINT UNSIGNED NOT NULL,
|
|
`make` VARCHAR(100) NOT NULL,
|
|
`model` VARCHAR(100) NOT NULL,
|
|
`trim_level` VARCHAR(100) NOT NULL DEFAULT '',
|
|
`body_style` VARCHAR(50) NOT NULL DEFAULT '',
|
|
`exterior_color` VARCHAR(50) NOT NULL DEFAULT '',
|
|
`interior_color` VARCHAR(50) NOT NULL DEFAULT '',
|
|
`engine` VARCHAR(100) NOT NULL DEFAULT '',
|
|
`transmission` ENUM('automatic','manual','cvt') NOT NULL DEFAULT 'automatic',
|
|
`drivetrain` ENUM('fwd','rwd','awd','4wd') NOT NULL DEFAULT 'fwd',
|
|
`mileage` INT UNSIGNED NOT NULL DEFAULT 0,
|
|
`condition_type` ENUM('new','used','certified') NOT NULL DEFAULT 'used',
|
|
`status` ENUM('in_transit','on_lot','sold','wholesale','trade_pending') NOT NULL DEFAULT 'on_lot',
|
|
`invoice_price` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`list_price` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`internet_price` DECIMAL(12,2) DEFAULT NULL,
|
|
`reconditioning_cost` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
|
|
`lot_date` DATE DEFAULT NULL,
|
|
`sold_date` DATE DEFAULT NULL,
|
|
`notes` TEXT,
|
|
`created` DATETIME NOT NULL,
|
|
`modified` DATETIME DEFAULT NULL,
|
|
`created_by` INT NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `idx_vin` (`vin`),
|
|
KEY `idx_stock` (`stock_number`),
|
|
KEY `idx_status` (`status`),
|
|
KEY `idx_condition` (`condition_type`),
|
|
KEY `idx_make_model` (`make`, `model`),
|
|
KEY `idx_lot_date` (`lot_date`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuiteauto_deals` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`vehicle_id` INT UNSIGNED NOT NULL,
|
|
`buyer_contact_id` INT NOT NULL,
|
|
`salesperson_id` INT DEFAULT NULL,
|
|
`fi_manager_id` INT DEFAULT NULL,
|
|
`sale_price` DECIMAL(12,2) NOT NULL,
|
|
`trade_allowance` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`trade_payoff` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`down_payment` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`financed_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`apr` DECIMAL(5,2) DEFAULT NULL,
|
|
`term_months` INT UNSIGNED DEFAULT NULL,
|
|
`monthly_payment` DECIMAL(10,2) DEFAULT NULL,
|
|
`front_gross` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`back_gross` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`total_gross` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`status` ENUM('prospect','negotiating','pending_finance','approved','delivered','unwound') NOT NULL DEFAULT 'prospect',
|
|
`deal_number` VARCHAR(20) NOT NULL DEFAULT '',
|
|
`created` DATETIME NOT NULL,
|
|
`modified` DATETIME DEFAULT NULL,
|
|
`delivered_at` DATETIME DEFAULT NULL,
|
|
`created_by` INT NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_vehicle` (`vehicle_id`),
|
|
KEY `idx_buyer` (`buyer_contact_id`),
|
|
KEY `idx_salesperson` (`salesperson_id`),
|
|
KEY `idx_status` (`status`),
|
|
KEY `idx_deal_number` (`deal_number`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuiteauto_fi_products` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`deal_id` INT UNSIGNED NOT NULL,
|
|
`product_name` VARCHAR(255) NOT NULL,
|
|
`cost` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
|
|
`price` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
|
|
`profit` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
|
|
`term_months` INT UNSIGNED DEFAULT NULL,
|
|
`created` DATETIME NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_deal` (`deal_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuiteauto_tradeins` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`deal_id` INT UNSIGNED DEFAULT NULL,
|
|
`vin` CHAR(17) NOT NULL DEFAULT '',
|
|
`year` SMALLINT UNSIGNED DEFAULT NULL,
|
|
`make` VARCHAR(100) NOT NULL DEFAULT '',
|
|
`model` VARCHAR(100) NOT NULL DEFAULT '',
|
|
`mileage` INT UNSIGNED NOT NULL DEFAULT 0,
|
|
`condition_grade` ENUM('excellent','good','fair','poor') NOT NULL DEFAULT 'good',
|
|
`appraisal_value` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`payoff_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`equity` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
|
|
`status` ENUM('pending_review','approved','applied','rejected') NOT NULL DEFAULT 'pending_review',
|
|
`owner_contact_id` INT DEFAULT NULL,
|
|
`appraised_by` INT DEFAULT NULL,
|
|
`notes` TEXT,
|
|
`created` DATETIME NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_deal` (`deal_id`),
|
|
KEY `idx_vin` (`vin`),
|
|
KEY `idx_status` (`status`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuiteauto_test_drives` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`vehicle_id` INT UNSIGNED NOT NULL,
|
|
`contact_id` INT NOT NULL,
|
|
`salesperson_id` INT DEFAULT NULL,
|
|
`scheduled_at` DATETIME NOT NULL,
|
|
`started_at` DATETIME DEFAULT NULL,
|
|
`ended_at` DATETIME DEFAULT NULL,
|
|
`mileage_out` INT UNSIGNED DEFAULT NULL,
|
|
`mileage_in` INT UNSIGNED DEFAULT NULL,
|
|
`status` ENUM('scheduled','in_progress','completed','cancelled','no_show') NOT NULL DEFAULT 'scheduled',
|
|
`notes` TEXT,
|
|
`created` DATETIME NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_vehicle` (`vehicle_id`),
|
|
KEY `idx_contact` (`contact_id`),
|
|
KEY `idx_date` (`scheduled_at`),
|
|
KEY `idx_status` (`status`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuiteauto_service_orders` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`ro_number` VARCHAR(20) NOT NULL DEFAULT '',
|
|
`vin` CHAR(17) NOT NULL DEFAULT '',
|
|
`contact_id` INT DEFAULT NULL,
|
|
`advisor_id` INT DEFAULT NULL,
|
|
`technician_id` INT DEFAULT NULL,
|
|
`type` ENUM('repair','maintenance','warranty','recall','inspection') NOT NULL DEFAULT 'repair',
|
|
`concern` TEXT,
|
|
`diagnosis` TEXT,
|
|
`resolution` TEXT,
|
|
`parts_total` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
|
|
`labor_total` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
|
|
`total` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
|
|
`status` ENUM('open','in_progress','waiting_parts','completed','invoiced') NOT NULL DEFAULT 'open',
|
|
`opened_at` DATETIME NOT NULL,
|
|
`completed_at` DATETIME DEFAULT NULL,
|
|
`created` DATETIME NOT NULL,
|
|
`created_by` INT NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_ro` (`ro_number`),
|
|
KEY `idx_vin` (`vin`),
|
|
KEY `idx_contact` (`contact_id`),
|
|
KEY `idx_status` (`status`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|