Files
ms1inscription-v5/sql/MSIN-4328-chronotrack-auto-sync-config.sql

58 lines
2.3 KiB
SQL

-- MSIN-4328 — Config sync automatique (phase A : stockage + UI, pas encore de cron)
-- Prérequis : sql/MSIN-4328-chronotrack-last-push-at.sql
-- Idempotent.
SET @db := DATABASE();
SET @col_ase := (
SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'api_chronotrack_config' AND COLUMN_NAME = 'auto_sync_enabled'
);
SET @sql_ase := IF(
@col_ase = 0,
'ALTER TABLE api_chronotrack_config ADD COLUMN auto_sync_enabled TINYINT(1) NOT NULL DEFAULT 0 COMMENT ''MSIN-4328 — sync auto ON/OFF'' AFTER last_push_ok_count',
'SELECT ''auto_sync_enabled already exists'' AS note'
);
PREPARE stmt_ase FROM @sql_ase;
EXECUTE stmt_ase;
DEALLOCATE PREPARE stmt_ase;
SET @col_asi := (
SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'api_chronotrack_config' AND COLUMN_NAME = 'auto_sync_interval_min'
);
SET @sql_asi := IF(
@col_asi = 0,
'ALTER TABLE api_chronotrack_config ADD COLUMN auto_sync_interval_min SMALLINT UNSIGNED NOT NULL DEFAULT 15 COMMENT ''MSIN-4328 — fréquence minutes'' AFTER auto_sync_enabled',
'SELECT ''auto_sync_interval_min already exists'' AS note'
);
PREPARE stmt_asi FROM @sql_asi;
EXECUTE stmt_asi;
DEALLOCATE PREPARE stmt_asi;
SET @col_asu := (
SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'api_chronotrack_config' AND COLUMN_NAME = 'auto_sync_until'
);
SET @sql_asu := IF(
@col_asu = 0,
'ALTER TABLE api_chronotrack_config ADD COLUMN auto_sync_until DATETIME NULL DEFAULT NULL COMMENT ''MSIN-4328 — arrêt auto (date+heure)'' AFTER auto_sync_interval_min',
'SELECT ''auto_sync_until already exists'' AS note'
);
PREPARE stmt_asu FROM @sql_asu;
EXECUTE stmt_asu;
DEALLOCATE PREPARE stmt_asu;
SET @col_lar := (
SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'api_chronotrack_config' AND COLUMN_NAME = 'last_auto_run_at'
);
SET @sql_lar := IF(
@col_lar = 0,
'ALTER TABLE api_chronotrack_config ADD COLUMN last_auto_run_at DATETIME NULL DEFAULT NULL COMMENT ''MSIN-4328 — dernier passage cron (phase B)'' AFTER auto_sync_until',
'SELECT ''last_auto_run_at already exists'' AS note'
);
PREPARE stmt_lar FROM @sql_lar;
EXECUTE stmt_lar;
DEALLOCATE PREPARE stmt_lar;