-- ═══════════════════════════════════════════════════════════════════════════════ -- 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;