-- 光谱下载缓存表（LAMOST/SDSS/Gaia 共用，按 source+source_id 去重）
-- 光谱文件不可变，故无 expires_at（与 vizier_query_cache 的 TTL 缓存不同）
-- file_path 存储「相对 library_dir」的路径，经 /api/files 前缀对外暴露
CREATE TABLE IF NOT EXISTS spectrum_cache (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    source TEXT NOT NULL,          -- 'lamost' | 'sdss' | 'gaia'
    source_id TEXT NOT NULL,       -- obsid / plate-mjd-fiber / source_id
    ra REAL,
    dec REAL,
    file_path TEXT NOT NULL,       -- 相对 library_dir 的路径，如 Spectra/lamost/438809089.fits
    file_format TEXT NOT NULL,     -- 'fits'
    meta_json TEXT,                -- z/class/designation 等元信息
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    UNIQUE(source, source_id)
);
CREATE INDEX IF NOT EXISTS idx_spectrum_cache_source ON spectrum_cache(source, source_id);
