
CREATE TABLE IF NOT EXISTS `helpdesk_topic_$mid` (
  `id` INTEGER  NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(255)  NOT NULL,
  `cid` INTEGER  NOT NULL,
  `closed` TINYINT(1)  NOT NULL DEFAULT 0,
  `date` TIMESTAMP  NOT NULL ,
  `comm` TINYINT(4) NOT NULL DEFAULT 0,
  `user_id` INTEGER NOT NULL DEFAULT -1,
  `status` SMALLINT  NOT NULL DEFAULT 0,
  `contract_package_id` INTEGER NOT NULL DEFAULT -1,
  PRIMARY KEY (`id`)
);

CREATE TABLE IF NOT EXISTS `helpdesk_message_$mid` (
  `id` INTEGER  NOT NULL AUTO_INCREMENT,
  `topic_id` INTEGER  NOT NULL,
  `body` TEXT  NOT NULL,
  `date_from` DATETIME  NOT NULL ,
  `user_from` INTEGER  NOT NULL,
  `date_to` DATETIME  DEFAULT NULL,
  `user_to` INTEGER  NOT NULL,
  PRIMARY KEY (`id`)
);

ALTER TABLE `helpdesk_topic_$mid` ADD COLUMN `user_id` INTEGER NOT NULL DEFAULT -1;
ALTER TABLE `helpdesk_topic_$mid` ADD COLUMN `status` SMALLINT  NOT NULL DEFAULT 0;
ALTER TABLE `helpdesk_topic_$mid` ADD COLUMN `contract_package_id` INTEGER  NOT NULL DEFAULT -1;
ALTER TABLE `helpdesk_message_$mid` ADD INDEX `topic_id`(`topic_id`), ADD INDEX `from_to`(`user_from`, `user_to`);
ALTER TABLE `helpdesk_message_$mid` MODIFY COLUMN `date_from` DATETIME  NOT NULL DEFAULT '0000-00-00 00:00:00';
ALTER TABLE `helpdesk_message_$mid` MODIFY COLUMN `date_to` DATETIME  DEFAULT NULL;

CREATE TABLE IF NOT EXISTS `helpdesk_topic_statuses_$mid` (
  `id` INTEGER  NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(128)  NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE IF NOT EXISTS `helpdesk_package_$mid` (
  `lu` timestamp NOT NULL,
  `id` int(11) NOT NULL auto_increment COMMENT 'код пакета',
  `title` varchar(255) NOT NULL COMMENT 'название пакета',
  `summa` decimal(12,2) NOT NULL default '1.00' COMMENT 'стоимость пакета',
  `count` int(11) NOT NULL default '1' COMMENT 'количество обращений в пакете',
  `period` int(11) NOT NULL default '1' COMMENT 'на сколько дней пакет активируется',
  `status` int(11) NOT NULL default '0' COMMENT 'статус пакета (вкл./выкл.)',
  `charge_id` int(11) NOT NULL default '0' COMMENT 'код типа расхода',
  PRIMARY KEY  (`id`)
);


CREATE TABLE IF NOT EXISTS `helpdesk_package_contract_$mid` (
  `lu` timestamp NOT NULL,
  `id` int(11) NOT NULL auto_increment COMMENT 'код экземпляра пакета',
  `package_id` int(11) NOT NULL COMMENT 'код пакета',
  `cid` int(11) NOT NULL COMMENT 'код договора',
  `date_from` date NOT NULL COMMENT 'дата активации пакета',
  `date_to` date NOT NULL COMMENT 'дата окончания действия пакета',
  `summa` decimal(15,2) NOT NULL COMMENT 'стоимость пакета',
  `count` int(11) NOT NULL COMMENT 'число обращений влюченных в пакет',
  `count_use` int(11) NOT NULL COMMENT 'число использованных обращений',
  `user_id` int(11) NOT NULL COMMENT 'код администратора биллинга, активировавшего пакет или -1 если активировал сам пользователь',
  PRIMARY KEY  (`id`)
);

ALTER TABLE helpdesk_topic_$mid ADD COLUMN autoclose TINYINT(1)  NOT NULL DEFAULT 1;

CREATE TABLE helpdesk_param_$mid (
  `cid` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  `value` varchar(255) NOT NULL,
  KEY `cid` (`cid`)
);

ALTER TABLE helpdesk_topic_$mid ADD COLUMN `comm_value` varchar(255)  NOT NULL DEFAULT '' AFTER `comm`;

ALTER TABLE helpdesk_topic_$mid MODIFY COLUMN `date` DATETIME  NOT NULL DEFAULT '0000-00-00 00:00:00';

CREATE TABLE IF NOT EXISTS `helpdesk_topic_manager_change_$mid` (
  `topic_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `date` datetime NOT NULL,
  `comment` text
);

ALTER TABLE `helpdesk_topic_$mid` ADD COLUMN `charge_id` INTEGER NOT NULL AFTER `cid`;
ALTER TABLE `helpdesk_topic_$mid` ADD COLUMN `cost` DECIMAL(7,2) NOT NULL AFTER `charge_id`;
ALTER TABLE `helpdesk_topic_$mid` ADD COLUMN `date_close` DATETIME AFTER `date`;
ALTER TABLE `helpdesk_message_$mid` ADD COLUMN `comment` VARCHAR(250)  NOT NULL;

CREATE TABLE IF NOT EXISTS `helpdesk_group_$mid` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE IF NOT EXISTS `helpdesk_category_$mid` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE IF NOT EXISTS `helpdesk_subcategory_$mid` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE IF NOT EXISTS `helpdesk_directory_link_$mid` (
  `group` int(11) NOT NULL,
  `category` int(11) NOT NULL,
  `subcategory` int(11) NOT NULL,
  `id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
);

ALTER TABLE `helpdesk_topic_$mid` ADD COLUMN `category_id` INTEGER NOT NULL;
ALTER TABLE `helpdesk_topic_$mid` ADD COLUMN `subcategory_id` INTEGER NOT NULL;

CREATE  TABLE `helpdesk_topic_reserve` (
  `topicId` INT NOT NULL ,
  `status` TINYINT(1) NULL ,
  `reserveId` INT NULL ,
   PRIMARY KEY (`topicId`) ,
   CONSTRAINT FOREIGN KEY(`reserveId`) REFERENCES contract_reserve(id) ON UPDATE NO ACTION ON DELETE RESTRICT ,
   CONSTRAINT FOREIGN KEY(`topicId`) REFERENCES helpdesk_topic_$mid(id) ON UPDATE NO ACTION ON DELETE CASCADE );
   
ALTER TABLE `filestorage_files_list_$mid` ADD INDEX id_owner( id_owner );
ALTER TABLE `filestorage_files_list_$mid` ADD COLUMN `uuid` VARCHAR(50) NOT NULL AFTER `comment`;

ALTER TABLE helpdesk_topic_$mid CHANGE COLUMN `cost` `cost` DECIMAL(9,2) NOT NULL DEFAULT '0.00';
   
-- события
-- #BLOCK#
DELETE FROM script_event_type WHERE mid="p$mid";
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES ('p$mid', 'ru.bitel.bgbilling.plugins.helpdesk.server.bean.event.TopicWillBeCreated', 0, 'Перед созданием темы');
INSERT INTO script_event_type (mid, event_id, event_mode, title) VALUES ('p$mid', 'ru.bitel.bgbilling.plugins.helpdesk.server.bean.event.TopicWasUpdatedEvent', 1, 'После создания/изменения темы');
-- #ENDB#
