-- Run this once in phpMyAdmin (select the database, then SQL tab).
-- Replaces the single card_number/card_holder settings with a proper table,
-- so multiple cards can be added, independently enabled/disabled (only
-- enabled ones are shown to users in the top-up invoice), and deleted.
CREATE TABLE IF NOT EXISTS payment_cards (
    id          INT AUTO_INCREMENT PRIMARY KEY,
    card_number VARCHAR(32)  NOT NULL,
    card_holder VARCHAR(100) NOT NULL,
    enabled     TINYINT(1)   NOT NULL DEFAULT 1,
    sort_order  INT          NOT NULL DEFAULT 0,
    created_at  TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- If the table already got created by an earlier failed run of this file,
-- make sure it's on the right charset (fixes "Incorrect string value" for Persian text).
ALTER TABLE payment_cards CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- Carry over whatever single card was already configured (if any) as the
-- first row, so nothing is lost for bots that were already running.
SET @old_number = (SELECT setting_value FROM settings WHERE setting_key = 'card_number' LIMIT 1);
SET @old_holder  = (SELECT setting_value FROM settings WHERE setting_key = 'card_holder' LIMIT 1);

INSERT INTO payment_cards (card_number, card_holder, enabled, sort_order)
SELECT @old_number, COALESCE(@old_holder, ''), 1, 0
WHERE @old_number IS NOT NULL AND @old_number <> ''
  AND NOT EXISTS (SELECT 1 FROM payment_cards);