nhance/app/Database/digit_motor_tables.sql
2026-07-21 09:32:13 +05:30

123 lines
6.4 KiB
SQL

-- Digit Motor Module tables
-- Run once against the NHANCE database.
CREATE TABLE IF NOT EXISTS motor_token (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
environment VARCHAR(20) NOT NULL DEFAULT 'staging',
access_token TEXT NOT NULL,
refresh_token TEXT,
expires_at TIMESTAMP NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uq_motor_token_env (environment)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS motor_quote (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
enquiry_id VARCHAR(64) NOT NULL,
quote_number VARCHAR(32) DEFAULT NULL,
application_id VARCHAR(128) DEFAULT NULL,
policy_holder_type VARCHAR(20) NOT NULL DEFAULT 'INDIVIDUAL',
insurance_product_code VARCHAR(10) NOT NULL,
sub_insurance_product_code VARCHAR(10) NOT NULL DEFAULT 'PB',
previous_insurer_code SMALLINT DEFAULT NULL,
previous_policy_expiry_date DATE DEFAULT NULL,
external_policy_number VARCHAR(32) DEFAULT NULL,
is_ncb_transfer TINYINT(1) DEFAULT 0,
start_date DATE DEFAULT NULL,
end_date DATE DEFAULT NULL,
pincode VARCHAR(6) NOT NULL,
coverage_details JSON DEFAULT NULL,
premium DECIMAL(12,2) DEFAULT NULL,
idv DECIMAL(12,2) DEFAULT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'DRAFT',
-- DRAFT -> QUOTED -> CREATED -> KYC_DONE -> PAID -> EFFECTIVE / FAILED
created_by INT DEFAULT NULL,
updated_by INT DEFAULT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uq_motor_quote_enquiry (enquiry_id),
KEY idx_motor_quote_status (status),
KEY idx_motor_quote_quote_number (quote_number)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS motor_vehicle (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
quote_id BIGINT NOT NULL,
is_vehicle_new TINYINT(1) NOT NULL DEFAULT 0,
vehicle_maincode VARCHAR(30) NOT NULL,
license_plate_number VARCHAR(12) NOT NULL,
vehicle_identification_number VARCHAR(30) DEFAULT NULL,
engine_number VARCHAR(30) DEFAULT NULL,
manufacture_date DATE NOT NULL,
registration_date DATE NOT NULL,
registration_authority VARCHAR(10) DEFAULT NULL,
idv DECIMAL(12,2) DEFAULT NULL,
default_idv DECIMAL(12,2) DEFAULT NULL,
minimum_idv DECIMAL(12,2) DEFAULT NULL,
maximum_idv DECIMAL(12,2) DEFAULT NULL,
UNIQUE KEY uq_motor_vehicle_quote (quote_id),
CONSTRAINT fk_motor_vehicle_quote FOREIGN KEY (quote_id) REFERENCES motor_quote(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS motor_kyc (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
quote_id BIGINT NOT NULL,
kyc_id VARCHAR(64) DEFAULT NULL,
kyc_verification_status VARCHAR(20) DEFAULT NULL,
reference_id VARCHAR(64) DEFAULT NULL,
link VARCHAR(512) DEFAULT NULL,
mismatch_type VARCHAR(40) DEFAULT NULL,
id_verification_doc_type VARCHAR(40) DEFAULT NULL,
address_verification_doc_type VARCHAR(40) DEFAULT NULL,
mode CHAR(1) DEFAULT 'O',
checked_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
KEY idx_motor_kyc_quote (quote_id),
CONSTRAINT fk_motor_kyc_quote FOREIGN KEY (quote_id) REFERENCES motor_quote(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS motor_payment (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
quote_id BIGINT NOT NULL,
application_id VARCHAR(128) NOT NULL,
digit_payment_id VARCHAR(64) DEFAULT NULL,
request_reference VARCHAR(64) DEFAULT NULL,
payment_mode VARCHAR(5) DEFAULT 'EB',
cancel_return_url VARCHAR(512) DEFAULT NULL,
success_return_url VARCHAR(512) DEFAULT NULL,
dispatcher_response VARCHAR(512) DEFAULT NULL,
premium DECIMAL(12,2) DEFAULT NULL,
payment_status VARCHAR(20) DEFAULT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
KEY idx_motor_payment_quote (quote_id),
CONSTRAINT fk_motor_payment_quote FOREIGN KEY (quote_id) REFERENCES motor_quote(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS motor_policy (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
quote_id BIGINT NOT NULL,
policy_number VARCHAR(32) DEFAULT NULL,
policy_status VARCHAR(20) DEFAULT NULL,
schedule_path VARCHAR(512) DEFAULT NULL,
proposal_path VARCHAR(512) DEFAULT NULL,
response_code VARCHAR(10) DEFAULT NULL,
response_message VARCHAR(255) DEFAULT NULL,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uq_motor_policy_quote (quote_id),
CONSTRAINT fk_motor_policy_quote FOREIGN KEY (quote_id) REFERENCES motor_quote(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS motor_api_log (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
quote_id BIGINT DEFAULT NULL,
integration_id VARCHAR(20) DEFAULT NULL,
endpoint VARCHAR(120) DEFAULT NULL,
request_body JSON DEFAULT NULL,
response_body JSON DEFAULT NULL,
http_status SMALLINT DEFAULT NULL,
error_code VARCHAR(10) DEFAULT NULL,
duration_ms INT DEFAULT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
KEY idx_motor_api_log_quote (quote_id),
KEY idx_motor_api_log_created (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;