-- 022_surfaces.sql
-- Surface registry for dynamic surface lifecycle (v0.25.0)
-- Core surfaces are seeded at startup. Extension surfaces are uploaded via admin.

CREATE TABLE IF NOT EXISTS surface_registry (
    id           TEXT PRIMARY KEY,
    title        TEXT NOT NULL,
    manifest     JSONB NOT NULL DEFAULT '{}',
    enabled      BOOLEAN NOT NULL DEFAULT true,
    source       TEXT NOT NULL DEFAULT 'core',
    installed_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    updated_at   TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

COMMENT ON TABLE surface_registry IS 'Registry of all surfaces (core + extension). Controls enable/disable and stores manifest metadata.';
COMMENT ON COLUMN surface_registry.source IS 'core = built-in, extension = uploaded via admin';
COMMENT ON COLUMN surface_registry.enabled IS 'Admin toggle — disabled surfaces redirect to / and hide from nav';
