Files

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;