-- Simple approach: Drop foreign key, then drop unique index, then recreate index
-- Run these one by one

-- STEP 1: Find foreign key names
SELECT CONSTRAINT_NAME 
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
WHERE TABLE_SCHEMA = DATABASE() 
  AND TABLE_NAME = 'bids' 
  AND COLUMN_NAME IN ('inquiryId', 'supplierId')
  AND REFERENCED_TABLE_NAME IS NOT NULL;

-- STEP 2: Find the unique index name
SHOW INDEX FROM `bids` WHERE Column_name IN ('inquiryId', 'supplierId') AND Non_unique = 0;

-- STEP 3: Drop foreign keys (replace with actual names from Step 1)
-- Usually named like: bids_ibfk_1, bids_ibfk_2, etc.
-- ALTER TABLE `bids` DROP FOREIGN KEY `bids_ibfk_1`;
-- ALTER TABLE `bids` DROP FOREIGN KEY `bids_ibfk_2`;

-- STEP 4: Drop the unique index (replace with name from Step 2)
-- ALTER TABLE `bids` DROP INDEX `bids_inquiry_id_supplier_id`;

-- STEP 5: Recreate foreign keys (if they were dropped)
-- These ensure referential integrity but don't need to be unique
-- ALTER TABLE `bids` 
--   ADD CONSTRAINT `bids_inquiryId_fk` FOREIGN KEY (`inquiryId`) REFERENCES `inquiries` (`id`) ON DELETE CASCADE;
-- ALTER TABLE `bids` 
--   ADD CONSTRAINT `bids_supplierId_fk` FOREIGN KEY (`supplierId`) REFERENCES `suppliers` (`id`) ON DELETE CASCADE;

-- STEP 6: Create non-unique index
CREATE INDEX `idx_bids_inquiry_supplier` ON `bids` (`inquiryId`, `supplierId`);

-- STEP 7: Verify
SHOW INDEX FROM `bids` WHERE Column_name IN ('inquiryId', 'supplierId`);

