CREATE TABLE IF NOT EXISTS `megafon_product_$mid` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `title` varchar(512),
  `product_offering_id` varchar(256),
  `option_kit_id` int(11),
  `npay_service_id` int(11),
  `tariff_id_after_activate` int(11),
  `tariff_id_after_deactivate` int(11),
  `price` int(11),
  PRIMARY KEY (`id`)
);

CREATE TABLE IF NOT EXISTS `megafon_option_$mid` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `title` varchar(512),
  `uuid` varchar(256),
  `prolongate` tinyint(4),
  `npay_service_id` int(11),
  `price` int(11),
  PRIMARY KEY (`id`)
);

CREATE TABLE IF NOT EXISTS `megafon_option_kit_$mid` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `title` varchar(512),
  PRIMARY KEY (`id`)
);

CREATE TABLE IF NOT EXISTS `option_kit_link_$mid` (
  `option_id` int(11),
  `kit_id` int(11),
  FOREIGN KEY (`kit_id`) REFERENCES `megafon_option_kit_$mid` (`id`) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS `megafon_contract_product_$mid` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `product_id` int(11),
  `contract_id` int(11),
  `status` tinyint(4),
  `msisdn` varchar(512),
  `additional_msisdn` varchar(512),
  `start_time` timestamp,
  `end_time` timestamp,
  `mnp_order_id` varchar(256),
  `mnp_comment` text,
  PRIMARY KEY (`id`)
);

CREATE TABLE IF NOT EXISTS `megafon_contract_product_history_$mid` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `product_id` int(11),
  `contract_id` int(11),
  `old_product_status` tinyint(4),
  `new_product_status` tinyint(4),
  `change_date` timestamp,
  `option_id` int(11),
  `msisdn` varchar(512),
  `additional_msisdn` varchar(512),
  `user_id` int(11),
  PRIMARY KEY (`id`)
);

ALTER TABLE `megafon_product_$mid` DROP COLUMN `tariff_id_after_activate`;
ALTER TABLE `megafon_product_$mid` DROP COLUMN `tariff_id_after_deactivate`;
ALTER TABLE `megafon_contract_product_$mid` ADD COLUMN `tariff_id` int(11);
ALTER TABLE `megafon_product_$mid` ADD COLUMN `tariff_label_id` int(11);
ALTER TABLE `megafon_contract_product_$mid` ADD COLUMN `order_id` BIGINT UNSIGNED;
ALTER TABLE `megafon_contract_product_$mid` DROP COLUMN `mnp_order_id`;

CREATE TABLE IF NOT EXISTS `megafon_contract_option_$mid` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `contract_product_id` int(11),
  `contract_id` int(11),
  `option_id` int(11),
  `order_id` BIGINT UNSIGNED,
  `status` tinyint(4),
  `start_time` timestamp,
  `end_time` timestamp,
  PRIMARY KEY (`id`)
);

CREATE TABLE IF NOT EXISTS `megafon_payment_$mid` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `contract_id` int(11),
  `payment_date` timestamp,
  `msisdn` varchar(512),
  `check_number` varchar(512),
  `amount` DECIMAL(10,2) NOT NULL,
  PRIMARY KEY (`id`)
);

ALTER TABLE `megafon_contract_product_$mid` MODIFY COLUMN end_time TIMESTAMP NULL DEFAULT NULL;
ALTER TABLE `megafon_contract_product_$mid` ADD COLUMN `mnp_process_number` varchar(512);
ALTER TABLE `megafon_option_$mid` RENAME COLUMN `prolongate` TO `option_type`;