-- =============================================================
-- COMPENSATING MIGRATION
-- Kompensuje: brak ścisłego odpowiednika — pierwsza migracja dla payment sync
-- Powód: Kolumna payment_sync_status_codes_json i job shoppro_payment_status_sync
--        nie miały wcześniejszej migracji. Prefiks ensure_ zastosowano defensywnie
--        na wypadek ręcznego nakładania schematu na środowiskach testowych przed
--        sformalizowaniem migracji. Migracja jest idempotentna od początku.
-- Status: Środowisko zsynchronizowane po 2026-03-08. Migracja
--         idempotentna — bezpieczna do ponownego uruchomienia.
-- =============================================================
SET @sql := (
    SELECT IF(COUNT(*) = 0,
        'ALTER TABLE `integrations` ADD COLUMN `payment_sync_status_codes_json` JSON NULL AFTER `order_status_sync_direction`',
        'SELECT 1')
    FROM information_schema.columns
    WHERE table_schema = DATABASE()
      AND table_name = 'integrations'
      AND column_name = 'payment_sync_status_codes_json'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

INSERT INTO cron_schedules (
    job_type, interval_seconds, priority, max_attempts, payload, enabled, last_run_at, next_run_at, created_at, updated_at
) VALUES (
    'shoppro_payment_status_sync',
    600,
    105,
    3,
    NULL,
    1,
    NULL,
    NOW(),
    NOW(),
    NOW()
)
ON DUPLICATE KEY UPDATE
    interval_seconds = IFNULL(interval_seconds, VALUES(interval_seconds)),
    priority = IFNULL(priority, VALUES(priority)),
    max_attempts = IFNULL(max_attempts, VALUES(max_attempts)),
    updated_at = VALUES(updated_at);
