feat(store): complete v2 runtime state repositories

This commit is contained in:
phamnazage-jpg
2026-05-22 14:37:08 +08:00
parent 60bf8f0fd1
commit a77a47024c
8 changed files with 570 additions and 283 deletions

View File

@@ -26,15 +26,22 @@ CREATE TABLE import_run_items (
run_id TEXT NOT NULL,
base_url TEXT NOT NULL,
provider_id TEXT NOT NULL,
api_key_fingerprint TEXT NOT NULL,
requested_models_json TEXT NOT NULL DEFAULT '[]',
raw_models_json TEXT NOT NULL DEFAULT '[]',
normalized_models_json TEXT NOT NULL DEFAULT '[]',
canonical_model_families_json TEXT NOT NULL DEFAULT '[]',
recommended_models_json TEXT NOT NULL DEFAULT '[]',
resolved_smoke_model TEXT NULL,
capability_profile_json TEXT NOT NULL DEFAULT '{}',
current_stage TEXT NOT NULL,
confirmation_status TEXT NOT NULL,
access_status TEXT NOT NULL,
matched_account_state TEXT NOT NULL,
account_resolution TEXT NOT NULL,
provision_reused INTEGER NOT NULL DEFAULT 0,
reused_from_provider_id TEXT NULL,
reused_from_account_id INTEGER NULL,
channel_id INTEGER NULL,
account_id INTEGER NULL,
retry_count INTEGER NOT NULL DEFAULT 0,
@@ -53,11 +60,15 @@ CREATE TABLE import_run_items (
CONSTRAINT fk_import_run_items_run FOREIGN KEY (run_id) REFERENCES import_runs(run_id) ON DELETE CASCADE,
CHECK (current_stage IN ('probe', 'provision', 'confirm', 'validate', 'done')),
CHECK (confirmation_status IN ('pending', 'confirmed', 'advisory', 'failed')),
CHECK (access_status IN ('unknown', 'active', 'degraded', 'broken'))
CHECK (access_status IN ('unknown', 'active', 'degraded', 'broken')),
CHECK (matched_account_state IN ('none', 'active', 'disabled', 'deprecated', 'broken')),
CHECK (account_resolution IN ('created', 'reused', 'reactivated', 'replaced')),
CHECK (provision_reused IN (0, 1))
);
CREATE INDEX idx_import_run_items_run_id ON import_run_items(run_id);
CREATE INDEX idx_import_run_items_provider_id ON import_run_items(provider_id);
CREATE INDEX idx_import_run_items_api_key_fingerprint ON import_run_items(api_key_fingerprint);
CREATE INDEX idx_import_run_items_current_stage ON import_run_items(current_stage);
CREATE INDEX idx_import_run_items_confirmation_status ON import_run_items(confirmation_status);
CREATE INDEX idx_import_run_items_access_status ON import_run_items(access_status);