- Cleaned 137+ fake engine-displacement models from supplier imports (v3/v4 scripts: Chevrolet, Ford, Chrysler, Dodge, Jeep, Nissan, etc.) - Removed 1,251+ corrupted models (INT. prefixes, year-suffix, torque specs, empty names, trailing-year variants) - Migrated supplier tables to master DB (supplier_catalog, supplier_catalog_compat, supplier_catalog_interchange) - Fixed _get_mye_ids_with_parts() to query supplier_catalog_compat from master DB so supplier-only vehicles appear for all tenants - Added fuzzy model matcher with parenthesis stripping, noise suffix removal, compact matching, prefix/substring fallback, model aliases, and ±3 year proximity - Matched compat rows: KEEP GREEN +14,152, KNADIAN +3,021, VAZLO +127,500, LUK +477, RAYBESTOS +1,743 - Added KNADIAN catalog importer with year-range expansion and future-year filtering - Added VAZLO catalog importer with position parsing and SKU-in-model cleanup - Added Keep Green, LUK, Yokomitsu, Raybestos catalog importers - Cache clearing after cleanups (_classify_cache_*, nexus:mye_ids:*, nexus:brand_mye_counts:*) Final match rates: - KEEP GREEN: 90.3% - VAZLO: 93.6% - YOKOMITSU: 100.0% - KNADIAN: 57.4% - LUK: 51.0% - RAYBESTOS: 55.9%
64 lines
2.3 KiB
SQL
64 lines
2.3 KiB
SQL
-- v3.8 — Supplier Catalog tables
|
|
-- Adds supplier_catalog, supplier_catalog_compat, and supplier_catalog_interchange
|
|
-- to support multi-supplier parts injection into the vehicle catalog.
|
|
|
|
CREATE TABLE IF NOT EXISTS supplier_catalog (
|
|
id SERIAL PRIMARY KEY,
|
|
tenant_id INTEGER NOT NULL,
|
|
supplier_name VARCHAR(255) NOT NULL,
|
|
sku VARCHAR(255) NOT NULL,
|
|
name VARCHAR(500) NOT NULL,
|
|
category VARCHAR(255),
|
|
description TEXT,
|
|
image_url TEXT,
|
|
is_active BOOLEAN DEFAULT TRUE,
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS supplier_catalog_tenant_id_supplier_name_sku_category_key
|
|
ON supplier_catalog (tenant_id, supplier_name, sku, category);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sc_supplier
|
|
ON supplier_catalog (tenant_id, supplier_name, is_active);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sc_sku
|
|
ON supplier_catalog (tenant_id, sku, category);
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS supplier_catalog_compat (
|
|
id SERIAL PRIMARY KEY,
|
|
catalog_id INTEGER NOT NULL REFERENCES supplier_catalog(id) ON DELETE CASCADE,
|
|
make VARCHAR(255),
|
|
model VARCHAR(255),
|
|
year INTEGER,
|
|
engine VARCHAR(255),
|
|
engine_code VARCHAR(255),
|
|
model_year_engine_id INTEGER,
|
|
source VARCHAR(50) DEFAULT 'import',
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS supplier_catalog_compat_catalog_id_make_model_year_engine_key
|
|
ON supplier_catalog_compat (catalog_id, make, model, year, engine);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_scc_catalog
|
|
ON supplier_catalog_compat (catalog_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_scc_vehicle
|
|
ON supplier_catalog_compat (make, model, year);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_scc_mye
|
|
ON supplier_catalog_compat (model_year_engine_id);
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS supplier_catalog_interchange (
|
|
id SERIAL PRIMARY KEY,
|
|
catalog_id INTEGER NOT NULL REFERENCES supplier_catalog(id) ON DELETE CASCADE,
|
|
brand VARCHAR(255),
|
|
part_number VARCHAR(255),
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sci_catalog
|
|
ON supplier_catalog_interchange (catalog_id);
|