-- Place your SQL code here
USE vn;
CREATE OR REPLACE TABLE `rateLog` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `originFk` int(11) DEFAULT NULL,
  `userFk` int(10) unsigned DEFAULT NULL,
  `action` set('insert','update','delete','select') NOT NULL,
  `creationDate` timestamp NULL DEFAULT current_timestamp(),
  `description` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
  `changedModel` enum('Rate') NOT NULL DEFAULT 'Rate',
  `oldInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`oldInstance`)),
  `newInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`newInstance`)),
  `changedModelId` int(11) NOT NULL,
  `changedModelValue` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `logRateuserFk` (`userFk`),
  KEY `rateLog_changedModel` (`changedModel`,`changedModelId`,`creationDate`),
  KEY `rateLog_originFk` (`originFk`,`creationDate`),
  CONSTRAINT `rateOriginFk` FOREIGN KEY (`originFk`) REFERENCES `rate` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `rateUserFk` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;