[
  {
    "type": "create_table",
    "description": "Create scheduleShiftOffers table: employee offers own shift up for grabs, manager approval turns it into an open shift (scheduleShifts.employeeId = NULL) claimable via the existing open-shift pool",
    "database": "{{store}}",
    "check_query": "SHOW TABLES LIKE 'scheduleShiftOffers'",
    "sql": "CREATE TABLE `scheduleShiftOffers` (\n  `offerId` int(10) unsigned NOT NULL AUTO_INCREMENT,\n  `shiftId` int(10) unsigned NOT NULL COMMENT 'Shift being offered up',\n  `offeredByEmployeeId` int(10) unsigned NOT NULL COMMENT 'Employee offering the shift (uf_users id)',\n  `message` varchar(500) DEFAULT NULL COMMENT 'Optional note from the offering employee',\n  `status` enum('pending_manager','approved','denied','cancelled','expired') NOT NULL DEFAULT 'pending_manager' COMMENT 'Offer status',\n  `managerReviewedByUserId` int(10) unsigned NULL COMMENT 'Manager who reviewed',\n  `managerReviewedAt` datetime NULL COMMENT 'When manager reviewed (UTC)',\n  `managerNote` varchar(500) NULL COMMENT 'Manager note on decision',\n  `createdAt` datetime NOT NULL COMMENT 'When the offer was created (UTC)',\n  `expiresAt` datetime NOT NULL COMMENT 'Offer expires at the shift start datetime (UTC)',\n  PRIMARY KEY (`offerId`),\n  KEY `idx_status` (`status`),\n  KEY `idx_shiftId` (`shiftId`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Employee shift offers pending manager approval (sibling of scheduleSwapRequests)'"
  }
]
