Files
baseball-api/data/notification.sql
2020-09-19 13:20:25 -04:00

34 lines
1.2 KiB
SQL

CREATE TABLE IF NOT EXISTS `notification` (
`id` BINARY(16) PRIMARY KEY,
`templateId` BINARY(16) NOT NULL,
`leagueMemberId` BINARY(16) NOT NULL,
`referenceId` BINARY(16), -- used to link to injury, invitation, etc.
`reference` VARCHAR(128), -- describe what the referenceId is referring to
`created` DATETIME,
`modified` DATETIME,
UNIQUE (`templateId`, `leagueMemberId`, `referenceId`),
FOREIGN KEY(`templateId`) REFERENCES `notificationTemplate`(`id`) ON DELETE CASCADE,
FOREIGN KEY(`leagueMemberId`) REFERENCES `leagueMember`(`id`) ON DELETE CASCADE
);
DROP TRIGGER IF EXISTS `insertNotificationTrigger`;
DELIMITER $$
CREATE TRIGGER `insertNotificationTrigger` BEFORE INSERT ON `notification`
FOR EACH ROW
BEGIN
SET NEW.`created` = IFNULL(NEW.`created`, NOW());
END$$
DELIMITER ;
DROP TRIGGER IF EXISTS `updateNotificationTrigger`;
DELIMITER $$
CREATE TRIGGER `updateNotificationTrigger` BEFORE UPDATE ON `notification`
FOR EACH ROW
BEGIN
SET NEW.`created` = OLD.`created`;
SET NEW.`modified` = NOW();
END$$
DELIMITER ;