mirror of https://github.com/sipwise/db-schema.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
3.3 KiB
64 lines
3.3 KiB
USE provisioning;
|
|
|
|
alter table `voip_preferences` add column `dynamic` tinyint(1) unsigned NOT NULL DEFAULT '0';
|
|
alter table `voip_preferences` add column `fielddev_pref` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `devprof_pref`;
|
|
alter table `voip_preferences_enum` add column `fielddev_pref` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `devprof_pref`;
|
|
|
|
update `voip_preferences` set fielddev_pref = 1 where devprof_pref = 1;
|
|
update `voip_preferences` set dynamic = 1 where attribute like '\_\_%';
|
|
update `voip_preferences` set fielddev_pref = 1 where dynamic = 1;
|
|
|
|
CREATE TABLE `voip_preference_relations` (
|
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
`voip_preference_id` int(11) unsigned NOT NULL,
|
|
`autoprov_device_id` int(11) unsigned,
|
|
`reseller_id` int(11) unsigned,
|
|
PRIMARY KEY (`id`),
|
|
-- not unique, because autoprov_device_id can be null
|
|
KEY `voip_pref_rel_devices` (`voip_preference_id`,`autoprov_device_id`),
|
|
KEY `voip_pref_rel_reselle` (`voip_preference_id`,`reseller_id`),
|
|
KEY `vpid_ref` (`voip_preference_id`),
|
|
CONSTRAINT `vpid_ref` FOREIGN KEY (`voip_preference_id`) REFERENCES `voip_preferences` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
|
|
KEY `adid_ref` (`autoprov_device_id`),
|
|
CONSTRAINT `adid_ref` FOREIGN KEY (`autoprov_device_id`) REFERENCES `autoprov_devices` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
|
|
KEY `rid_ref` (`reseller_id`),
|
|
CONSTRAINT `rid_ref` FOREIGN KEY (`reseller_id`) REFERENCES `billing`.`resellers` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE `voip_fielddev_preferences` (
|
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
`device_id` int(11) unsigned NOT NULL,
|
|
`attribute_id` int(11) unsigned NOT NULL,
|
|
`value` varchar(128) NOT NULL,
|
|
`modify_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `fielddevidattrid_idx` (`device_id`,`attribute_id`),
|
|
KEY `fielddeviceid_idx` (`device_id`),
|
|
KEY `attributeid_idx` (`attribute_id`),
|
|
CONSTRAINT `v_fdev_p_attributeid_ref` FOREIGN KEY (`attribute_id`) REFERENCES `voip_preferences` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT `v_fd_p_deviceid_ref` FOREIGN KEY (`device_id`) REFERENCES `autoprov_devices` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
DROP TRIGGER IF EXISTS provisioning.voip_pref_icheck_trig;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_pref_icheck_trig BEFORE INSERT ON voip_preferences
|
|
FOR EACH ROW BEGIN
|
|
IF ( ((NEW.attribute like '\_\_%') and !NEW.dynamic)
|
|
or ((NEW.attribute not like '\_\_%') and NEW.dynamic)
|
|
) THEN
|
|
SIGNAL sqlstate '45001' set message_text = "voip_preferences attributes are allowed either '__' prefixed + dynamic=1 or without the '__' prefix and dynamic=0";
|
|
END IF;
|
|
END */;;
|
|
DELIMITER ;
|
|
|
|
DROP TRIGGER IF EXISTS provisioning.voip_pref_ucheck_trig;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50017 DEFINER=`sipwise`@`localhost`*/ /*!50003 TRIGGER voip_pref_ucheck_trig BEFORE UPDATE ON voip_preferences
|
|
FOR EACH ROW BEGIN
|
|
IF ( ((NEW.attribute like '\_\_%') and !NEW.dynamic)
|
|
or ((NEW.attribute not like '\_\_%') and NEW.dynamic)
|
|
) THEN
|
|
SIGNAL sqlstate '45001' set message_text = "voip_preferences attributes are allowed either '__' prefixed + dynamic=1 or without the '__' prefix and dynamic=0";
|
|
END IF;
|
|
END */;;
|
|
DELIMITER ; |