[
  {
    "_comment": "EXAMPLE FILE — .example suffix prevents the migration runner from applying this. Demonstrates the yearly-refresh version-bump pattern (T5.5.4). To ship CA-2026: rename to 049_099_preset_ca_2026.json and remove this _comment key.",
    "type": "raw_sql",
    "description": "Spec 049 T5.5.4: Mark CA-2025 as superseded by CA-2026",
    "database": "kiosk_buykiosk",
    "check_query": "SELECT 1 FROM breakPolicyPreset WHERE presetKey='CA-2025' AND supersededByPresetKey IS NOT NULL LIMIT 1",
    "sql": "UPDATE breakPolicyPreset SET supersededByPresetKey = 'CA-2026', updatedAt = NOW() WHERE presetKey = 'CA-2025'"
  },
  {
    "type": "insert",
    "description": "Spec 049 T5.5.4: Seed breakPolicyPreset row for CA-2026 (California 2026, version 2)",
    "database": "kiosk_buykiosk",
    "check_query": "SELECT 1 FROM breakPolicyPreset WHERE presetKey='CA-2026' AND version=2 LIMIT 1",
    "sql": "INSERT INTO breakPolicyPreset (presetKey, name, description, jurisdiction, jurisdictionCode, effectiveDate, version) VALUES ('CA-2026', 'California 2026', 'Updated meal and rest break requirements effective 2026-01-01.', 'state', 'CA', '2026-01-01', 2)"
  },
  {
    "type": "raw_sql",
    "description": "Spec 049 T5.5.4: Seed breakPolicyPresetRule rows for CA-2026 (mirrors CA-2025 + any 2026 changes)",
    "database": "kiosk_buykiosk",
    "check_query": "SELECT 1 FROM breakPolicyPresetRule r INNER JOIN breakPolicyPreset p ON r.presetId = p.id WHERE p.presetKey = 'CA-2026' AND p.version = 2 LIMIT 1",
    "sql": "INSERT INTO breakPolicyPresetRule (presetId, priority, ruleType, triggerShiftMinHours, durationMinutes, durationToleranceMinutes, isPaid, isRequired, mustStartBeforeHourOfShift, premiumPayOnViolation, premiumPayHours, notes) SELECT id, 10, 'rest', 3.50, 10, 0, 1, 1, NULL, 1, 1.00, '10-min paid rest break per 4h worked. IWC Wage Orders / CA Lab Code §226.7. (CA-2026 unchanged from CA-2025)' FROM breakPolicyPreset WHERE presetKey = 'CA-2026' AND version = 2 UNION ALL SELECT id, 20, 'meal', 5.00, 30, 0, 0, 1, 5.00, 1, 1.00, '30-min unpaid meal must start before end of hour 5. CA Lab Code §512(a). (CA-2026 unchanged from CA-2025)' FROM breakPolicyPreset WHERE presetKey = 'CA-2026' AND version = 2 UNION ALL SELECT id, 30, 'secondMeal', 10.00, 30, 0, 0, 1, NULL, 1, 1.00, 'Second 30-min unpaid meal required for shifts exceeding 10 hours. CA Lab Code §512(a). (CA-2026 unchanged from CA-2025)' FROM breakPolicyPreset WHERE presetKey = 'CA-2026' AND version = 2 UNION ALL SELECT id, 100, 'flsaCutoff', NULL, 20, 0, 1, 0, NULL, 0, 0.00, '29 CFR 785.18 final classifier. (CA-2026 unchanged from CA-2025)' FROM breakPolicyPreset WHERE presetKey = 'CA-2026' AND version = 2"
  }
]
