CREATE TABLE `dispatch_dispatch` (
  `id` int  NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(100)  NOT NULL,
  `sender_type_id` INT NOT NULL,
  `repeat_time` VARCHAR(150)  NOT NULL,
  `contact_type_id` INT NOT NULL,
  `conditions` BLOB NOT NULL,
  PRIMARY KEY (`id`)
);


CREATE TABLE `dispatch_message` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `dispatch_id` INT NOT NULL,
  `create_date` DATETIME NOT NULL,
  `send_date` DATETIME NOT NULL,
  `is_sent` INT(3) NOT NULL,
  `msg_body` TEXT NOT NULL,
  `msg_title` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `dispatch_contact_type` (
  `id` INT  NOT NULL AUTO_INCREMENT,
  `title` varchar(100)  NOT NULL,
  `pattern` VARCHAR(100)  NOT NULL,
  `description` TEXT NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `dispatch_contact` (
  `id` INT  NOT NULL AUTO_INCREMENT,
  `contract_id` INT  NOT NULL,
  `type_id` INT  NOT NULL,
  `val` VARCHAR(100)  NOT NULL,
  PRIMARY KEY (`id`),
  KEY contract_id(contract_id)
);

CREATE TABLE `dispatch_sender_type` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(255) NOT NULL,
  `class_name` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `dispatch_subscription` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `dispatch_id` INT NOT NULL,
  `contract_id` INT NOT NULL,
  `comment` TEXT NOT NULL,
  `data` BLOB NOT NULL,
  PRIMARY KEY (`id`),
  KEY contract_id(contract_id)
);

CREATE TABLE `dispatch_subscription_contact` (
  `subscription_id` INT NOT NULL,
  `contact_id` INT NOT NULL,
  PRIMARY KEY (`subscription_id`,`contact_id`)
);

ALTER TABLE `dispatch_dispatch` ADD COLUMN `active` BOOLEAN  NOT NULL DEFAULT 1 AFTER `sender_type_id`;

ALTER TABLE `dispatch_dispatch` ADD COLUMN `personal` BOOLEAN  NOT NULL DEFAULT 0 AFTER `active`;
ALTER TABLE `dispatch_subscription` ADD COLUMN `repeat_time` VARCHAR(150)  NOT NULL AFTER `data`;
ALTER TABLE `dispatch_dispatch` ADD COLUMN `only_one_contact` BOOLEAN  NOT NULL DEFAULT 0 AFTER `personal`;

ALTER TABLE `dispatch_subscription` ADD COLUMN `active` BOOLEAN  NOT NULL DEFAULT 1 AFTER `repeat_time`;

ALTER TABLE `dispatch_dispatch` ADD COLUMN `do_not_mark_sended` BOOLEAN  NOT NULL DEFAULT 0 AFTER `personal`;

ALTER TABLE `dispatch_subscription` ADD COLUMN `date_from` DATE NULL  AFTER `contract_id` , 
									ADD COLUMN `date_to` DATE NULL  AFTER `date_from`;

-- Обновление задачи планировщика 
UPDATE scheduled_class SET class='ru.bitel.bgbilling.plugins.dispatch.server.task.DispatchWorker' where class='ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker';

ALTER TABLE `dispatch_contact_type`	ADD COLUMN `pid` INT NOT NULL DEFAULT '-1' AFTER `description`;
