import pool from '../../db.js'; const CREATE_TABLE_SQL = ` CREATE TABLE IF NOT EXISTS bi_ele_charge_record ( id BIGINT AUTO_INCREMENT PRIMARY KEY, order_no VARCHAR(64) NOT NULL, station_no VARCHAR(64) NULL, station_name VARCHAR(128) NULL, terminal_name VARCHAR(64) NULL, region VARCHAR(64) NULL, city VARCHAR(64) NULL, district VARCHAR(64) NULL, operating_company VARCHAR(128) NULL, station_type VARCHAR(32) NULL, order_status VARCHAR(32) NULL, charge_form VARCHAR(32) NULL, start_time DATETIME NULL, end_time DATETIME NULL, duration_min INT NULL, kwh DECIMAL(10,3) NULL, e_fee DECIMAL(10,2) NULL, service_fee DECIMAL(10,2) NULL, fee DECIMAL(10,2) NULL, plate VARCHAR(32) NULL, judged_plate VARCHAR(32) NULL, vin VARCHAR(64) NULL, customer_name VARCHAR(128) NULL, customer_phone VARCHAR(32) NULL, enterprise_name VARCHAR(128) NULL, matched_truck_id VARCHAR(32) NULL, matched_plate VARCHAR(32) NULL, vehicle_kind ENUM('internal','external','unknown') NOT NULL DEFAULT 'unknown', raw_json JSON NULL, batch_id VARCHAR(64) NOT NULL, imported_at DATETIME NOT NULL, UNIQUE KEY uk_order_no (order_no), KEY idx_start_time (start_time), KEY idx_batch (batch_id), KEY idx_kind (vehicle_kind), KEY idx_plate (plate) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 `; let ensured = false; export async function ensureChargeRecordTable(): Promise { if (ensured) return; await pool.query(CREATE_TABLE_SQL); ensured = true; }