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

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

CREATE TABLE `contract_document_journal_$mid` (
  `id` INTEGER  NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(255)  NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `contract_document_$mid` (
  `id` INTEGER  NOT NULL AUTO_INCREMENT,
  `cid` INTEGER  NOT NULL,
  `journal_id` INTEGER  NOT NULL,
  `type` INTEGER  NOT NULL,
  `title` VARCHAR(255) NOT NULL,
  `date` TIMESTAMP  NOT NULL,
  `user` INTEGER  NOT NULL,
  `comment` TEXT  NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `contract_document_status_list_$mid` (
  `id` INTEGER  NOT NULL AUTO_INCREMENT,
  `id_document` INTEGER  NOT NULL,
  `date` TIMESTAMP  NOT NULL,
  `status` INTEGER  NOT NULL,
  `user` INTEGER  NOT NULL,
  `comment` TEXT  NOT NULL,
  PRIMARY KEY (`id`)
);

ALTER TABLE `contract_document_$mid` ADD `journal_id` INTEGER  NOT NULL;
ALTER TABLE `contract_document_$mid` ADD `status_id` INTEGER  NOT NULL;
ALTER TABLE `contract_document_status_list_$mid` CHANGE COLUMN `comment` `comment` TEXT NULL;

-- переименовываем и копируем старые таблицы.
CREATE TABLE `documents` ( PRIMARY KEY (`id`)) SELECT * FROM `contract_document_$mid`;
CREATE TABLE `documents_journal` ( PRIMARY KEY (`id`) ) SELECT * FROM `contract_document_journal_$mid`;
CREATE TABLE `documents_type` ( PRIMARY KEY (`id`) ) SELECT * FROM `contract_document_types_$mid`;
CREATE TABLE `documents_status` ( PRIMARY KEY (`id`) ) SELECT * FROM `contract_document_statuses_$mid`;
CREATE TABLE `documents_status_log` ( PRIMARY KEY (`id`) ) SELECT * FROM `contract_document_status_list_$mid`;

ALTER TABLE `documents` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `documents_journal` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `documents_type` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `documents_status` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `documents_status_log` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT,CHANGE COLUMN `comment` `comment` TEXT NULL;

-- TODO: текущий релиз 5.2. В новых версиях снести старые таблицы в самом начале файла

CREATE TABLE `documents_pattern` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL,
  `comment` varchar(250) DEFAULT NULL,
  `generated_file_name` varchar(100) DEFAULT NULL,
  `output_name` varchar(100) DEFAULT NULL,
  `use_in_plugin` tinyint(4) NOT NULL DEFAULT '1',
  `extractor_class` text DEFAULT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `documents_pattern_variables` (
  `pattern_id` int(11) NOT NULL,
  `title` varchar(45) NOT NULL,
  `type` tinyint(4) DEFAULT '1',
  `additional_param` varchar(50),
  `value` text,
  PRIMARY KEY (`pattern_id`,`title`),
  KEY `fk_docs_pattern_vars` (`pattern_id`),
  CONSTRAINT `fk_docs_pattern_vars` FOREIGN KEY (`pattern_id`) REFERENCES `documents_pattern` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
);

CREATE TABLE `documents_pattern_tables` (
  `pattern_id` int(11) NOT NULL,
  `title` varchar(100) NOT NULL,
  `position` int(11),
  `extract_method` tinyint(4) DEFAULT '1',
  `value` text,
  PRIMARY KEY (`pattern_id`,`title`),
  KEY `fk_doc_pattern_tables` (`pattern_id`),
  CONSTRAINT `fk_doc_pattern_tables` FOREIGN KEY (`pattern_id`) REFERENCES `documents_pattern` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
);

-- события
-- #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.documents.server.bean.event.DocumentGeneratedEvent', 1, 'После генерации документа');
-- #ENDB#
