-- ═══════════════════════════════════════════════════════════════════════════════
-- 033: Anytime Mailbox locations + client selection columns
-- ═══════════════════════════════════════════════════════════════════════════════

-- Anytime Mailbox BC locations with live pricing (updated daily by scraper)
CREATE TABLE IF NOT EXISTS amb_locations (
  id              SERIAL PRIMARY KEY,
  slug            TEXT UNIQUE NOT NULL,                -- e.g. "howe-st-vancouver"
  name            TEXT NOT NULL,                       -- e.g. "329 Howe St"
  full_address    TEXT NOT NULL,                       -- full street address line
  city            TEXT NOT NULL DEFAULT 'Vancouver',
  province        TEXT NOT NULL DEFAULT 'BC',
  postal_code     TEXT NOT NULL,
  provider_url    TEXT NOT NULL,                       -- AMB listing URL for scraping
  plan_name       TEXT DEFAULT 'Basic',
  monthly_price_usd INTEGER NOT NULL DEFAULT 0,       -- cents
  yearly_price_usd  INTEGER NOT NULL DEFAULT 0,       -- cents (annual rate, used in orders)
  is_active       BOOLEAN DEFAULT TRUE,
  available_units  INTEGER DEFAULT -1,          -- -1 = unknown, 0 = sold out, >0 = count
  last_scraped_at TIMESTAMPTZ,
  price_changed_at TIMESTAMPTZ,
  created_at      TIMESTAMPTZ DEFAULT NOW(),
  updated_at      TIMESTAMPTZ DEFAULT NOW()
);

-- Client-selected AMB location + unit + DID on CRTC orders
ALTER TABLE canada_crtc_orders ADD COLUMN IF NOT EXISTS amb_location_slug TEXT;
ALTER TABLE canada_crtc_orders ADD COLUMN IF NOT EXISTS amb_annual_price_cents INTEGER DEFAULT 0;
ALTER TABLE canada_crtc_orders ADD COLUMN IF NOT EXISTS client_selected_unit TEXT;
ALTER TABLE canada_crtc_orders ADD COLUMN IF NOT EXISTS client_selected_did TEXT;
ALTER TABLE canada_crtc_orders ADD COLUMN IF NOT EXISTS funds_available BOOLEAN DEFAULT FALSE;
ALTER TABLE canada_crtc_orders ADD COLUMN IF NOT EXISTS funds_available_at TIMESTAMPTZ;
ALTER TABLE canada_crtc_orders ADD COLUMN IF NOT EXISTS stripe_topup_id TEXT;
ALTER TABLE canada_crtc_orders ADD COLUMN IF NOT EXISTS client_selection_email_sent_at TIMESTAMPTZ;
