-- Add visible column to exchanges table
-- Connect to trading_bot database
\c trading_bot;

-- Add visible column to exchanges table with default true
ALTER TABLE exchanges 
ADD COLUMN IF NOT EXISTS visible BOOLEAN DEFAULT true;

-- Update existing records to be visible by default
UPDATE exchanges SET visible = true WHERE visible IS NULL;

-- Create index for visibility filtering
CREATE INDEX IF NOT EXISTS idx_exchanges_visible ON exchanges(visible);

-- Update the exchange_provider_summary view to include visibility
CREATE OR REPLACE VIEW exchange_provider_summary AS
SELECT 
    e.code as master_code,
    e.name as master_name,
    e.country,
    e.currency,
    e.active as master_active,
    e.visible as master_visible,
    COUNT(pem.id) as provider_mappings,
    COUNT(CASE WHEN pem.active = true THEN 1 END) as active_mappings,
    COUNT(CASE WHEN pem.verified = true THEN 1 END) as verified_mappings,
    STRING_AGG(DISTINCT pem.provider, ', ') as providers
FROM exchanges e
LEFT JOIN provider_exchange_mappings pem ON e.id = pem.master_exchange_id
WHERE e.visible = true  -- Only show visible exchanges in summary
GROUP BY e.id, e.code, e.name, e.country, e.currency, e.active, e.visible
ORDER BY e.code;

-- Show what we created
SELECT 'Added visible column to exchanges table' as status;