← back to Trademarks Copyright
db/brands.sql
49 lines
-- Unregistered-brand hunter schema (additive — does not touch existing items table).
DROP TABLE IF EXISTS brand_hunt_runs CASCADE;
DROP TABLE IF EXISTS brand_candidates CASCADE;
CREATE TABLE brand_candidates (
id SERIAL PRIMARY KEY,
domain TEXT UNIQUE NOT NULL,
brand_name TEXT,
category TEXT DEFAULT 'fashion',
established_year INT,
years_in_business INT,
whois_created_date DATE,
meta_description TEXT,
-- USPTO search outcome
uspto_checked_at TIMESTAMPTZ,
uspto_live_marks INT, -- count of apparent live federal registrations
has_federal_registration BOOLEAN,
uspto_search_url TEXT,
-- provenance
suggested_by TEXT DEFAULT 'seed', -- 'seed' | 'qwen' | 'manual'
suggested_from_domain TEXT,
status TEXT DEFAULT 'pending',
-- 'pending', 'verified_unregistered', 'registered', 'too_new', 'error'
error_message TEXT,
notes TEXT,
created_at TIMESTAMPTZ DEFAULT NOW(),
last_checked_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX idx_brands_status ON brand_candidates(status);
CREATE INDEX idx_brands_years ON brand_candidates(years_in_business DESC NULLS LAST);
CREATE INDEX idx_brands_domain ON brand_candidates(domain);
CREATE TABLE brand_hunt_runs (
id SERIAL PRIMARY KEY,
started_at TIMESTAMPTZ DEFAULT NOW(),
ended_at TIMESTAMPTZ,
seed_count INT DEFAULT 0,
discovered INT DEFAULT 0,
verified INT DEFAULT 0,
errors INT DEFAULT 0,
log TEXT
);