[
  {
    "type": "alter_table",
    "description": "Add schedulingProvider column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'schedulingProvider'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `schedulingProvider` enum('none','buyerkiosk','wheniwork','homebase') NOT NULL DEFAULT 'none' COMMENT 'Active scheduling provider'"
  },
  {
    "type": "alter_table",
    "description": "Add schedulingFeatureFlags column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'schedulingFeatureFlags'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `schedulingFeatureFlags` text DEFAULT NULL COMMENT 'JSON feature flag overrides for scheduling'"
  },
  {
    "type": "alter_table",
    "description": "Add scheduledDailyHours column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'scheduledDailyHours'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `scheduledDailyHours` smallint(5) unsigned DEFAULT NULL COMMENT 'Standard scheduled daily hours (for SK-style OT rules)'"
  },
  {
    "type": "alter_table",
    "description": "Add clockInEarlyMinutes column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'clockInEarlyMinutes'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `clockInEarlyMinutes` smallint(5) unsigned NOT NULL DEFAULT 15 COMMENT 'Minutes before shift employee can clock in'"
  },
  {
    "type": "alter_table",
    "description": "Add clockInLateMinutes column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'clockInLateMinutes'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `clockInLateMinutes` smallint(5) unsigned NOT NULL DEFAULT 15 COMMENT 'Minutes after shift start allowed for clock in'"
  },
  {
    "type": "alter_table",
    "description": "Add clockOutLateMinutes column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'clockOutLateMinutes'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `clockOutLateMinutes` smallint(5) unsigned NOT NULL DEFAULT 30 COMMENT 'Minutes after shift end allowed for clock out'"
  },
  {
    "type": "alter_table",
    "description": "Add requireManagerOverrideOutsideClockWindow column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'requireManagerOverrideOutsideClockWindow'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `requireManagerOverrideOutsideClockWindow` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Require manager override for out-of-window clock'"
  },
  {
    "type": "alter_table",
    "description": "Add requireManagerOverrideForUnscheduledClockIn column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'requireManagerOverrideForUnscheduledClockIn'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `requireManagerOverrideForUnscheduledClockIn` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Require manager override for unscheduled clock-in'"
  },
  {
    "type": "alter_table",
    "description": "Add payrollRoundingIncrementMinutes column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'payrollRoundingIncrementMinutes'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `payrollRoundingIncrementMinutes` smallint(5) unsigned NOT NULL DEFAULT 15 COMMENT 'Payroll rounding increment in minutes'"
  },
  {
    "type": "alter_table",
    "description": "Add payrollRoundingMode column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'payrollRoundingMode'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `payrollRoundingMode` enum('none','nearest','up','down') NOT NULL DEFAULT 'none' COMMENT 'Payroll rounding mode'"
  },
  {
    "type": "alter_table",
    "description": "Add workWeekStartDay column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'workWeekStartDay'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `workWeekStartDay` enum('sun','mon','tue','wed','thu','fri','sat') NOT NULL DEFAULT 'mon' COMMENT 'Start day of work week'"
  },
  {
    "type": "alter_table",
    "description": "Add workWeekStartTimeLocal column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'workWeekStartTimeLocal'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `workWeekStartTimeLocal` time NOT NULL DEFAULT '00:00:00' COMMENT 'Work week start time in store timezone'"
  },
  {
    "type": "alter_table",
    "description": "Add statutoryHolidaysMode column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'statutoryHolidaysMode'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `statutoryHolidaysMode` enum('none','manual_dates') NOT NULL DEFAULT 'none' COMMENT 'Statutory holiday handling mode'"
  },
  {
    "type": "alter_table",
    "description": "Add statutoryHolidayDates column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'statutoryHolidayDates'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `statutoryHolidayDates` text DEFAULT NULL COMMENT 'JSON array of statutory holiday dates'"
  },
  {
    "type": "alter_table",
    "description": "Add schedulePermissions column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'schedulePermissions'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `schedulePermissions` text DEFAULT NULL COMMENT 'JSON role-capability permission matrix'"
  },
  {
    "type": "alter_table",
    "description": "Add externalProviderManualPunchFallbackEnabled column to stores table",
    "database": "kiosk_buykiosk",
    "check_query": "SHOW COLUMNS FROM `stores` LIKE 'externalProviderManualPunchFallbackEnabled'",
    "sql": "ALTER TABLE `stores` ADD COLUMN `externalProviderManualPunchFallbackEnabled` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Allow manual punch fallback when external provider fails'"
  }
]
