CREATE TABLE IF NOT EXISTS `inner_blanks` (
  `id` int(11) NOT NULL,
  `name` varchar(64) NOT NULL COMMENT 'Название бланка',
  `type` tinyint(4) NOT NULL COMMENT 'Тип бланка',
  `content` text DEFAULT NULL COMMENT 'Контент бланка',
  `agency_id` mediumint(9) NOT NULL COMMENT 'ИД агенства, которому принадлежит бланк',
  `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания бланка',
  `created_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который добавил бланка',
  `updated_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата редактирования бланка',
  `updated_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который изменил данные бланка'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci COMMENT='Таблица бланков документов';

ALTER TABLE `inner_blanks`
  ADD PRIMARY KEY (id),
  ADD KEY `idx_inner_blanks` (`name`, `type`, `content`(255), `agency_id`);

ALTER TABLE `inner_blanks`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'PK';


CREATE TABLE IF NOT EXISTS `inner_blanks_fields` (
  `id` int(11) NOT NULL,
  `section_id` tinyint(4) NOT NULL COMMENT 'Связь переменной (объект/клиент)',
  `name` varchar(64) NOT NULL COMMENT 'Название переменной',
  `title` varchar(255) NOT NULL COMMENT 'Заголовок переменной',
  `default` varchar(255) NULL COMMENT 'Значение по-умолчанию',
  `agency_id` mediumint(9) NOT NULL COMMENT 'ИД агенства, которому принадлежит переменная',
  `order` tinyint(4) NOT NULL COMMENT 'Порядок сортировки',
  `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания переменной',
  `created_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который добавил переменную',
  `updated_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата редактирования переменной',
  `updated_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который изменил переменную'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci COMMENT='Таблица переменных бланков';

ALTER TABLE `inner_blanks_fields`
  ADD PRIMARY KEY (id),
  ADD KEY `idx_inner_blanks_fields` (`section_id`, `name`, `title`, `agency_id`, `order`);

ALTER TABLE `inner_blanks_fields`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'PK';


CREATE TABLE IF NOT EXISTS `inner_docs` (
  `id` int(11) NOT NULL,
  `name` varchar(64) NOT NULL COMMENT 'Название документа',
  `content` text DEFAULT NULL COMMENT 'Контент документа',
  `blank_id` int(11) NOT NULL COMMENT 'ИД бланка, на основе которого сформирован документ',
  `agency_id` mediumint(9) NOT NULL COMMENT 'ИД агенства, которому принадлежит документ',
  `params` varchar(255) NULL COMMENT 'Параметры генерации документа',
  `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания документа',
  `created_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который добавил документ',
  `updated_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата редактирования документа',
  `updated_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который изменил документ'

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci COMMENT='Таблица сохраненных документов';

ALTER TABLE `inner_docs`
  ADD PRIMARY KEY (id),
  ADD KEY `idx_inner_docs` (`name`, `blank_id`, `content`(255), `agency_id`);

ALTER TABLE `inner_docs`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'PK';


CREATE TABLE IF NOT EXISTS `inner_docs_fields` (
  `id` int(11) NOT NULL,
  `section_id` tinyint(4) NOT NULL COMMENT 'Связь переменной',
  `source_id` int(11) NOT NULL COMMENT 'ИД источника (объект/клиент)',
  `field_id` int(11) NOT NULL COMMENT 'ИД переменной',
  `field_value` varchar(255) NULL COMMENT 'Значение поля переменной',
  `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания переменной',
  `created_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который добавил переменную',
  `updated_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата редактирования переменной',
  `updated_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который изменил переменную'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci COMMENT='Таблица значений переменных для документов';

ALTER TABLE `inner_docs_fields`
  ADD PRIMARY KEY (id),
  ADD KEY `idx_inner_docs_fields` (`section_id`, `field_id`, `field_value`, `source_id`);

ALTER TABLE `inner_docs_fields`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'PK';
