-- Clear existing test data (savedCardId FK must be nulled first)
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE `savedcard`;
SET FOREIGN_KEY_CHECKS = 1;

ALTER TABLE `savedcard` DROP FOREIGN KEY `savedcard_billingAccountId_fkey`;
DROP INDEX `savedcard_billingAccountId_isActive_deletedAt_idx` ON `savedcard`;
DROP INDEX `savedcard_billingAccountId_idx` ON `savedcard`;

ALTER TABLE `savedcard` DROP COLUMN `billingAccountId`;
ALTER TABLE `savedcard` DROP COLUMN `createdByUserId`;
ALTER TABLE `savedcard` ADD COLUMN `userId` INT NOT NULL;
ALTER TABLE `savedcard` ADD COLUMN `customerEmail` VARCHAR(191) NOT NULL DEFAULT '';

ALTER TABLE `savedcard` ADD CONSTRAINT `savedcard_userId_fkey`
  FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
CREATE INDEX `savedcard_userId_idx` ON `savedcard`(`userId`);
CREATE INDEX `savedcard_userId_isActive_deletedAt_idx` ON `savedcard`(`userId`, `isActive`, `deletedAt`);

ALTER TABLE `savedcard` ALTER COLUMN `customerEmail` DROP DEFAULT;
