[
  {
    "type": "create_table",
    "description": "Create employeeSchedulePositions junction table for multi-position assignment",
    "database": "{{store}}",
    "check_query": "SHOW TABLES LIKE 'employeeSchedulePositions'",
    "sql": "CREATE TABLE `employeeSchedulePositions` (\n  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,\n  `userId` int(11) NOT NULL COMMENT 'FK to kiosk_users.users.id',\n  `positionId` int(11) NOT NULL COMMENT 'FK to schedulePositions.positionId',\n  `assignedAt` timestamp NOT NULL DEFAULT current_timestamp(),\n  `assignedByUserId` int(11) unsigned DEFAULT NULL COMMENT 'Who assigned this position',\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uk_employee_position` (`userId`, `positionId`),\n  KEY `idx_userId` (`userId`),\n  KEY `idx_positionId` (`positionId`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Maps employees to their allowed scheduling positions'"
  },
  {
    "type": "insert",
    "description": "Seed Cashier position into schedulePositions if not present",
    "database": "{{store}}",
    "check_query": "SELECT positionId FROM schedulePositions WHERE LOWER(name) = 'cashier' LIMIT 1",
    "sql": "INSERT INTO `schedulePositions` (`name`, `color`, `sortOrder`, `isActive`, `createdByUserId`) SELECT 'Cashier', '#dc2626', COALESCE((SELECT MAX(sortOrder) + 1 FROM schedulePositions), 7), 1, 0 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM schedulePositions WHERE LOWER(name) = 'cashier')"
  },
  {
    "type": "insert",
    "description": "Default all active employees to Cashier position",
    "database": "{{store}}",
    "check_query": "SELECT id FROM employeeSchedulePositions LIMIT 1",
    "sql": "INSERT INTO employeeSchedulePositions (userId, positionId)\nSELECT usa.userId, sp.positionId\nFROM kiosk_users.userStoreAssignments usa\nINNER JOIN kiosk_users.users u ON u.id = usa.userId\nCROSS JOIN schedulePositions sp\nWHERE usa.typeNum = '{{typeNum}}'\n  AND usa.isActive = 1\n  AND u.enabled = 1\n  AND LOWER(sp.name) = 'cashier'\n  AND NOT EXISTS (\n    SELECT 1 FROM employeeSchedulePositions esp\n    WHERE esp.userId = usa.userId AND esp.positionId = sp.positionId\n  )"
  }
]
