153 lines
6.9 KiB
SQL
153 lines
6.9 KiB
SQL
-- Digit Motor master / lookup tables
|
|
-- Source: Digit API Integration kit → Masters/
|
|
-- Run once (or via: php spark digit-motor:import-masters --create-tables)
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_vehicle (
|
|
vehicle_code VARCHAR(30) NOT NULL,
|
|
make VARCHAR(80) NOT NULL,
|
|
model VARCHAR(120) NOT NULL,
|
|
variant VARCHAR(120) DEFAULT NULL,
|
|
body_type VARCHAR(60) DEFAULT NULL,
|
|
seating_capacity SMALLINT DEFAULT NULL,
|
|
power DECIMAL(10,2) DEFAULT NULL,
|
|
cubic_capacity DECIMAL(10,2) DEFAULT NULL,
|
|
gross_vehicle_weight DECIMAL(12,2) DEFAULT NULL,
|
|
fuel_type VARCHAR(40) DEFAULT NULL,
|
|
no_of_wheels TINYINT DEFAULT NULL,
|
|
abs CHAR(1) DEFAULT NULL,
|
|
air_bags SMALLINT DEFAULT NULL,
|
|
length_m DECIMAL(10,3) DEFAULT NULL,
|
|
ex_showroom_price DECIMAL(14,2) DEFAULT NULL,
|
|
price_year SMALLINT DEFAULT NULL,
|
|
production_status VARCHAR(60) DEFAULT NULL,
|
|
manufacturing VARCHAR(40) DEFAULT NULL,
|
|
vehicle_type VARCHAR(40) DEFAULT NULL,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (vehicle_code),
|
|
KEY idx_mmv_make (make),
|
|
KEY idx_mmv_make_model (make, model),
|
|
KEY idx_mmv_make_model_variant (make, model, variant),
|
|
KEY idx_mmv_active (is_active)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_previous_insurer (
|
|
insurer_code VARCHAR(10) NOT NULL,
|
|
insurer_name VARCHAR(180) NOT NULL,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (insurer_code),
|
|
KEY idx_mmpi_name (insurer_name)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_product (
|
|
product_code VARCHAR(10) NOT NULL,
|
|
product_name VARCHAR(120) NOT NULL,
|
|
vehicle_class VARCHAR(10) DEFAULT NULL COMMENT '2W / 4W / CV',
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (product_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_sub_product (
|
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
|
business_type VARCHAR(20) NOT NULL COMMENT 'NEW / ROLLOVER',
|
|
product_label VARCHAR(120) NOT NULL,
|
|
sub_product_code VARCHAR(20) NOT NULL,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uq_mmsp (business_type, product_label, sub_product_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_pincode (
|
|
pincode VARCHAR(6) NOT NULL,
|
|
city VARCHAR(120) DEFAULT NULL,
|
|
district VARCHAR(120) DEFAULT NULL,
|
|
street VARCHAR(180) DEFAULT NULL,
|
|
taluk VARCHAR(120) DEFAULT NULL,
|
|
state_code VARCHAR(10) DEFAULT NULL,
|
|
segment VARCHAR(40) DEFAULT NULL,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (pincode),
|
|
KEY idx_mmp_city (city),
|
|
KEY idx_mmp_state (state_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_rto (
|
|
rto_code VARCHAR(10) NOT NULL,
|
|
city_state VARCHAR(180) DEFAULT NULL,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (rto_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_ncb (
|
|
ncb_code VARCHAR(30) NOT NULL,
|
|
sort_order SMALLINT NOT NULL DEFAULT 0,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (ncb_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_previous_policy_type (
|
|
policy_type_code VARCHAR(20) NOT NULL,
|
|
description VARCHAR(120) DEFAULT NULL,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (policy_type_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_voluntary_deductible (
|
|
deductible_code VARCHAR(40) NOT NULL,
|
|
sort_order SMALLINT NOT NULL DEFAULT 0,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (deductible_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_doc_type (
|
|
doc_code VARCHAR(10) NOT NULL,
|
|
doc_type VARCHAR(60) NOT NULL,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (doc_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_nominee_relation (
|
|
relation_code VARCHAR(40) NOT NULL,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (relation_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_state (
|
|
state_code VARCHAR(10) NOT NULL,
|
|
state_name VARCHAR(120) NOT NULL,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (state_code)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_addon_age_limit (
|
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
|
addon_name VARCHAR(120) NOT NULL,
|
|
age_limit_4w VARCHAR(120) DEFAULT NULL,
|
|
age_limit_2w VARCHAR(255) DEFAULT NULL,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uq_mmaal_addon (addon_name)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS motor_master_import_log (
|
|
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|
master_key VARCHAR(60) NOT NULL,
|
|
source_file VARCHAR(255) DEFAULT NULL,
|
|
rows_upserted INT NOT NULL DEFAULT 0,
|
|
status VARCHAR(20) NOT NULL DEFAULT 'OK',
|
|
message TEXT DEFAULT NULL,
|
|
imported_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
KEY idx_mmil_master (master_key),
|
|
KEY idx_mmil_imported (imported_at)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|