CREATE TABLE IF NOT EXISTS vtiger_archive_transfers ( id BIGSERIAL PRIMARY KEY, direction VARCHAR(10) NOT NULL CHECK (direction IN ('export','import')), bundle_sha256 VARCHAR(64), through_version_id BIGINT, source_instance VARCHAR(255), status VARCHAR(20) NOT NULL CHECK (status IN ('running','completed','failed')), counts JSONB NOT NULL DEFAULT '{}'::jsonb, error_message TEXT, initiated_by INTEGER REFERENCES users(user_id) ON DELETE SET NULL, started_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), completed_at TIMESTAMPTZ ); CREATE INDEX IF NOT EXISTS idx_vtiger_archive_transfers_started ON vtiger_archive_transfers(started_at DESC);