[
  {
    "type": "insert",
    "description": "Register invite:delivery job definition (Spec 051 T3.3/T3.8) - on-demand only, no cron cadence",
    "database": "kiosk_buykiosk",
    "check_query": "SELECT 1 AS exact_match FROM task_job_definitions WHERE name='invite:delivery' AND displayName='Scheduling Invite Delivery' AND className='BuyerKiosk\\\\TaskEngine\\\\Jobs\\\\InviteDeliveryJob' AND schedule IS NULL AND queue='default' AND scope='global' AND timeout=30 AND maxRetries=3 AND retryBackoff=60 AND config IS NULL AND isEnabled=1 AND notifyOnFailure=1 AND notifyEmails IS NULL HAVING COUNT(*)=1",
    "sql": "INSERT INTO `task_job_definitions` (`name`, `displayName`, `className`, `schedule`, `queue`, `scope`, `timeout`, `maxRetries`, `retryBackoff`, `config`, `isEnabled`, `notifyOnFailure`, `notifyEmails`) VALUES ('invite:delivery', 'Scheduling Invite Delivery', 'BuyerKiosk\\\\TaskEngine\\\\Jobs\\\\InviteDeliveryJob', NULL, 'default', 'global', 30, 3, 60, NULL, 1, 1, NULL)"
  },
  {
    "type": "insert",
    "description": "Register invite:sweep job definition (Spec 051 T3.3/T3.8) - 5-minute cadence outbox recovery sweep",
    "database": "kiosk_buykiosk",
    "check_query": "SELECT 1 AS exact_match FROM task_job_definitions WHERE name='invite:sweep' AND displayName='Scheduling Invite Sweep' AND className='BuyerKiosk\\\\TaskEngine\\\\Jobs\\\\InviteSweepJob' AND schedule='*/5 * * * *' AND queue='default' AND scope='global' AND timeout=120 AND maxRetries=1 AND retryBackoff=60 AND config IS NULL AND isEnabled=1 AND notifyOnFailure=1 AND notifyEmails IS NULL HAVING COUNT(*)=1",
    "sql": "INSERT INTO `task_job_definitions` (`name`, `displayName`, `className`, `schedule`, `queue`, `scope`, `timeout`, `maxRetries`, `retryBackoff`, `config`, `isEnabled`, `notifyOnFailure`, `notifyEmails`) VALUES ('invite:sweep', 'Scheduling Invite Sweep', 'BuyerKiosk\\\\TaskEngine\\\\Jobs\\\\InviteSweepJob', '*/5 * * * *', 'default', 'global', 120, 1, 60, NULL, 1, 1, NULL)"
  },
  {
    "type": "insert",
    "description": "Register invite:expire job definition (Spec 051 T3.3/T3.8) - daily pending-invite expiry sweep",
    "database": "kiosk_buykiosk",
    "check_query": "SELECT 1 AS exact_match FROM task_job_definitions WHERE name='invite:expire' AND displayName='Scheduling Invite Expiry Sweep' AND className='BuyerKiosk\\\\TaskEngine\\\\Jobs\\\\InviteExpiryJob' AND schedule='0 3 * * *' AND queue='low' AND scope='global' AND timeout=120 AND maxRetries=1 AND retryBackoff=3600 AND config IS NULL AND isEnabled=1 AND notifyOnFailure=1 AND notifyEmails IS NULL HAVING COUNT(*)=1",
    "sql": "INSERT INTO `task_job_definitions` (`name`, `displayName`, `className`, `schedule`, `queue`, `scope`, `timeout`, `maxRetries`, `retryBackoff`, `config`, `isEnabled`, `notifyOnFailure`, `notifyEmails`) VALUES ('invite:expire', 'Scheduling Invite Expiry Sweep', 'BuyerKiosk\\\\TaskEngine\\\\Jobs\\\\InviteExpiryJob', '0 3 * * *', 'low', 'global', 120, 1, 3600, NULL, 1, 1, NULL)"
  }
]
