-- AlterTable
ALTER TABLE `worker_profiles` ADD COLUMN `isHired` BOOLEAN NOT NULL DEFAULT false;

-- CreateIndex
CREATE INDEX `worker_profiles_isHired_idx` ON `worker_profiles`(`isHired`);

-- AlterEnum (MySQL)
ALTER TABLE `notifications` MODIFY COLUMN `type` ENUM(
  'JOB_POSTED',
  'QUOTE_RECEIVED',
  'QUOTE_ACCEPTED',
  'QUOTE_REJECTED',
  'JOB_STATUS_CHANGED',
  'JOB_REACTION',
  'MESSAGE_RECEIVED',
  'VERIFICATION_UPDATE',
  'REVIEW_RECEIVED',
  'HIRE_INVITE',
  'HIRE_ACCEPTED',
  'HIRE_REJECTED',
  'HIRE_COMPLETED',
  'SYSTEM'
) NOT NULL;

-- CreateTable
CREATE TABLE `hire_invitations` (
    `id` VARCHAR(191) NOT NULL,
    `customerId` VARCHAR(191) NOT NULL,
    `workerId` VARCHAR(191) NOT NULL,
    `status` ENUM('PENDING', 'ACCEPTED', 'REJECTED', 'CANCELLED', 'COMPLETED') NOT NULL DEFAULT 'PENDING',
    `message` TEXT NULL,
    `acknowledgedDisclaimer` BOOLEAN NOT NULL DEFAULT false,
    `respondedAt` DATETIME(3) NULL,
    `completedAt` DATETIME(3) NULL,
    `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
    `updatedAt` DATETIME(3) NOT NULL,

    INDEX `hire_invitations_customerId_idx`(`customerId`),
    INDEX `hire_invitations_workerId_idx`(`workerId`),
    INDEX `hire_invitations_status_idx`(`status`),
    INDEX `hire_invitations_createdAt_idx`(`createdAt`),
    PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- AddForeignKey
ALTER TABLE `hire_invitations` ADD CONSTRAINT `hire_invitations_customerId_fkey` FOREIGN KEY (`customerId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE `hire_invitations` ADD CONSTRAINT `hire_invitations_workerId_fkey` FOREIGN KEY (`workerId`) REFERENCES `worker_profiles`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
