
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`delivery_beforeInsert`
	BEFORE INSERT ON `delivery`
	FOR EACH ROW
BEGIN

	IF (NEW.longitude IS NOT NULL AND NEW.latitude IS NOT NULL AND NEW.ticketFK IS NOT NULL)
	THEN
		UPDATE address
		SET longitude = NEW.longitude,
			latitude = NEW.latitude
		WHERE id IN (
					SELECT addressFK
						FROM ticket
						WHERE id = NEW.ticketFk
					);
	END IF;

END$$
DELIMITER ;

DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`delivery_beforeUpdate`
	BEFORE UPDATE ON `delivery`
	FOR EACH ROW
BEGIN

IF (NEW.longitude IS NOT NULL AND NEW.latitude IS NOT NULL AND NEW.ticketFK IS NOT NULL)
	THEN
		UPDATE address
		SET longitude = NEW.longitude,
			latitude = NEW.latitude
		WHERE id IN (
					SELECT addressFK
						FROM ticket
						WHERE id = NEW.ticketFk
					);
	END IF;

END$$
DELIMITER ;


ALTER TABLE `vn`.`address` MODIFY COLUMN longitude decimal(11,7) DEFAULT NULL NULL COMMENT 'Indica la última longitud proporcionada por tabla delivery';
ALTER TABLE `vn`.`address` MODIFY COLUMN latitude decimal(11,7) DEFAULT NULL NULL COMMENT 'Indica la última latitud proporcionada por tabla delivery';
