-- Migration: 005_machine_metadata.sql
-- Purpose: Add the organization / site / tags columns to connect_machines.
--
--   db::machines::update_machine_metadata (called from relay/mod.rs on every
--   AgentStatus update) has always written `organization`, `site`, and `tags`
--   to connect_machines, but no prior migration ever created those columns.
--   The caller swallows the error (`let _ = ...`), so the write failed silently
--   and the metadata never persisted. This adds the columns so the write
--   succeeds, and the Machine struct now maps them (so SELECT * returns them).
--   Resolves coord todo faf39fe0.
--
-- Idempotent: ADD COLUMN IF NOT EXISTS. Applied on server startup by
-- sqlx::migrate!(); never pre-applied via psql. Ordered after 004.
-- See .claude/standards/gururmm/sqlx-migrations.md.

-- organization / site: nullable free-form text reported by the agent
-- (AgentStatus.organization / AgentStatus.site).
ALTER TABLE connect_machines ADD COLUMN IF NOT EXISTS organization TEXT;
ALTER TABLE connect_machines ADD COLUMN IF NOT EXISTS site TEXT;

-- tags: TEXT[] matching the &[String] bound by update_machine_metadata and the
-- repeated-string AgentStatus.tags proto field. NOT NULL DEFAULT '{}' so every
-- row (existing and new) holds an array and decodes cleanly into Vec<String>;
-- the metadata update only overwrites it when the agent reports a non-empty set.
ALTER TABLE connect_machines
    ADD COLUMN IF NOT EXISTS tags TEXT[] NOT NULL DEFAULT '{}';
