CREATE TABLE IF NOT EXISTS `smarthouse_forpost_account_$mid` (
  `id` int(11) NOT NULL DEFAULT 0,
  `name` varchar(255) NOT NULL DEFAULT '',
  `max_camera_count` int(11) NOT NULL DEFAULT 0,
  `max_login_count` int(11) NOT NULL DEFAULT 0,
  `is_active` int(11) NOT NULL DEFAULT 0,
  `data` text NOT NULL DEFAULT '',
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `name` (`name`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_account_contract_$mid` (
  `account_id` int(11) NOT NULL DEFAULT 0,
  `contract_id` int(11) NOT NULL DEFAULT 0,
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `account_contract` (`account_id`,`contract_id`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_camera_$mid` (
  `id` int(11) NOT NULL DEFAULT 0,
  `name` varchar(255) NOT NULL DEFAULT '',
  `account_id` int(11) NOT NULL DEFAULT 0,
  `account_object_id` int(11) NOT NULL DEFAULT 0,
  `master_id` int(11) NOT NULL DEFAULT 0,
  `login` varchar(255) NOT NULL DEFAULT '',
  `ip_or_domain` varchar(255) NOT NULL DEFAULT '',
  `port` int(11) NOT NULL DEFAULT 0,
  `is_active` int(11) NOT NULL DEFAULT 0,
  `data` text NOT NULL DEFAULT '',
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `account_id` (`account_id`),
  KEY `name` (`name`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_user_$mid` (
  `id` int(11) NOT NULL DEFAULT 0,
  `account_id` int(11) NOT NULL DEFAULT 0,
  `login` varchar(255) NOT NULL DEFAULT '',
  `password` varchar(255) NOT NULL DEFAULT '',
  `is_active` int(11) NOT NULL DEFAULT 0,
  `data` text NOT NULL DEFAULT '',
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `account_id` (`account_id`),
  KEY `login` (`login`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_camera_model_$mid` (
  `id` int(11) NOT NULL DEFAULT 0,
  `name` varchar(255) NOT NULL DEFAULT '',
  `brand_id` int(11) NOT NULL DEFAULT 0,
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `name` (`name`),
  KEY `brand_id` (`brand_id`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_camera_brand_$mid` (
  `id` int(11) NOT NULL DEFAULT 0,
  `name` varchar(255) NOT NULL DEFAULT '',
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `name` (`name`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_master_$mid` (
  `id` int(11) NOT NULL DEFAULT 0,
  `name` varchar(255) NOT NULL DEFAULT '',
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `name` (`name`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_record_type_$mid` (
  `id` int(11) NOT NULL DEFAULT 0,
  `name` varchar(255) NOT NULL DEFAULT '',
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `name` (`name`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_protocol_$mid` (
  `id` varchar(25) NOT NULL DEFAULT '',
  `name` varchar(255) NOT NULL DEFAULT '',
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `name` (`name`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_rtsp_transport_$mid` (
  `id` varchar(25) NOT NULL DEFAULT '',
  `name` varchar(255) NOT NULL DEFAULT '',
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `name` (`name`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_ptz_type_$mid` (
  `id` int(11) NOT NULL DEFAULT 0,
  `name` varchar(255) NOT NULL DEFAULT '',
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `name` (`name`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_object_$mid` (
  `id` int(11) NOT NULL DEFAULT 0,
  `account_id` int(11) NOT NULL DEFAULT 0,
  `name` varchar(255) NOT NULL DEFAULT '',
  `address` varchar(255) NOT NULL DEFAULT '',
  `data` text NOT NULL DEFAULT '',
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `account_id` (`account_id`),
  KEY `name` (`name`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_forpost_group_$mid` (
  `id` int(11) NOT NULL DEFAULT 0,
  `account_id` int(11) NOT NULL DEFAULT 0,
  `name` varchar(255) NOT NULL DEFAULT '',
  `parent_id` int(11) NOT NULL DEFAULT 0,
  `data` text NOT NULL DEFAULT '',
  `sync_datetime` bigint(20) NOT NULL DEFAULT 0,
  UNIQUE KEY `id` (`id`),
  KEY `account_id` (`account_id`),
  KEY `name` (`name`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_package_$mid` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL DEFAULT '',
  `date_from` date DEFAULT NULL,
  `date_to` date DEFAULT NULL,
  `comment` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `date_from` (`date_from`),
  KEY `title` (`title`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_package_contract_$mid` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `contract_id` int(11) NOT NULL DEFAULT 0,
  `object_id` int(11) NOT NULL DEFAULT 0,
  `package_id` int(11) NOT NULL DEFAULT 0,
  `date_from` datetime DEFAULT NULL,
  `date_to` datetime DEFAULT NULL,
  `calc_date_from` datetime DEFAULT NULL,
  `calc_date_to` datetime DEFAULT NULL,
  `calc_count` int(11) NOT NULL DEFAULT 0,
  `package_cost` decimal(12,2) DEFAULT NULL,
  `package_cost_date` datetime DEFAULT NULL,
  `reserve_id` int(11) NOT NULL DEFAULT 0,
  `user_id` int(11) NOT NULL DEFAULT 0,
  `lm` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `contract_id` (`contract_id`),
  KEY `date_from` (`date_from`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_package_option_$mid` (
  `name` varchar(255) NOT NULL DEFAULT '',
  `title` varchar(255) NOT NULL DEFAULT '',
  `service_id` int(11) DEFAULT 0,
  PRIMARY KEY (`name`)
);

ALTER TABLE `smarthouse_package_$mid` ADD COLUMN `option_names` TEXT AFTER `date_to`;
ALTER TABLE `smarthouse_package_$mid` ADD COLUMN `duration_value` INT NOT NULL DEFAULT 0 AFTER `date_to`;
ALTER TABLE `smarthouse_package_$mid` ADD COLUMN `duration_unit_code` SMALLINT NOT NULL DEFAULT 0 AFTER `duration_value`;
ALTER TABLE `smarthouse_package_contract_$mid` ADD COLUMN `data` TEXT NOT NULL AFTER `package_id`;

CREATE TABLE IF NOT EXISTS `smarthouse_intercom_$mid` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `type` int(11) NOT NULL DEFAULT 0,
  `house_id` int(11) NOT NULL DEFAULT 0,
  `entrance` int(11) NOT NULL DEFAULT 0,
  `flat_range` varchar(255) NOT NULL DEFAULT '',
  `data` text NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `type` (`type`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_intercom_flat_$mid` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `intercom_id` int(11) NOT NULL DEFAULT 0,
  `flat` int(11) NOT NULL DEFAULT 0,
  `contract_id` int(11) NOT NULL DEFAULT 0,
  `status` int(11) NOT NULL DEFAULT 0,
  `date_from` date DEFAULT NULL,
  `date_to` date DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `intercom_id` (`intercom_id`)
);

CREATE TABLE IF NOT EXISTS `smarthouse_intercom_flat_status_log_$mid` (
  `id` int(10) unsigned NOT NULL,
  `update_date` datetime DEFAULT NULL,
  `status` int(11) NOT NULL DEFAULT 0,
  `user_id` int(11) NOT NULL DEFAULT 0,
  KEY (`id`),
  KEY `update_date` (`update_date`)
);

ALTER TABLE `smarthouse_package_$mid` ADD COLUMN `tariff_mode` varchar(10) NOT NULL DEFAULT 'SMARTHOUSE' AFTER `date_to`;
ALTER TABLE `smarthouse_package_$mid` ADD COLUMN `npay_module_id` int(11) NOT NULL DEFAULT 0 AFTER `tariff_mode`;
ALTER TABLE `smarthouse_package_$mid` ADD COLUMN `npay_service_id` int(11) NOT NULL DEFAULT 0 AFTER `npay_module_id`;

-- #BLOCK#
DELETE FROM script_event_type WHERE mid=$mid;

INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES ($mid, 'ru.bitel.bgbilling.modules.smarthouse.server.event.ForpostCameraAddEvent', 1, 'Добавление камеры');
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES ($mid, 'ru.bitel.bgbilling.modules.smarthouse.common.event.forpost.ForpostAccountDefaultEvent', 1, 'Аккаунт по умолчанию');
-- #ENDB#