-- CreateTable
CREATE TABLE `savedcard` (
    `id` INTEGER NOT NULL AUTO_INCREMENT,
    `uuid` VARCHAR(191) NOT NULL,
    `billingAccountId` INTEGER NOT NULL,
    `cardToken` VARCHAR(191) NOT NULL,
    `cardFirst6` VARCHAR(191) NOT NULL,
    `cardLast4` VARCHAR(191) NOT NULL,
    `cardHolderName` VARCHAR(191) NOT NULL,
    `isActive` BOOLEAN NOT NULL DEFAULT true,
    `createdByUserId` INTEGER NOT NULL,
    `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
    `updatedAt` DATETIME(3) NOT NULL,

    UNIQUE INDEX `savedcard_uuid_key`(`uuid`),
    UNIQUE INDEX `savedcard_cardToken_key`(`cardToken`),
    INDEX `savedcard_billingAccountId_idx`(`billingAccountId`),
    INDEX `savedcard_billingAccountId_isActive_idx`(`billingAccountId`, `isActive`),
    PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- AddForeignKey
ALTER TABLE `savedcard` ADD CONSTRAINT `savedcard_billingAccountId_fkey` FOREIGN KEY (`billingAccountId`) REFERENCES `billaccount`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
