DROP TABLE IF EXISTS `ads_stats`;

CREATE TABLE IF NOT EXISTS `ads_stats` (
  `id` BIGINT(11) NOT NULL COMMENT 'PK',
  `object_id` INT(11) NOT NULL COMMENT 'ИД объекта',
  `service_id` INT(11) NOT NULL COMMENT 'ИД сервиса (площадки)',
  `views` TINYINT(4) DEFAULT NULL COMMENT 'Кол-во просмотров объявления',
  `contacts` TINYINT(4) DEFAULT NULL COMMENT 'Кол-во просмотров контактов',
  `favorites` TINYINT(4) DEFAULT NULL COMMENT 'Кол-во добавлений в избранное',
  `calls` TINYINT(4) DEFAULT NULL COMMENT 'Кол-во звонков с сайта площадки',
  `url` VARCHAR(255) NOT NULL COMMENT 'Адрес объявления на сайте площадки',
  `errors` TEXT DEFAULT NULL COMMENT 'Список ошибок/замечаний размещения',
  `is_error` TINYINT(2) NOT NULL DEFAULT '0' COMMENT 'Флаг, есть ли замечания (ошибки) по размещению (1 - есть, 0 - нет)',
  `is_manual` TINYINT(2) NOT NULL DEFAULT '0' COMMENT 'Запрос выполнен по крону (1 - нет, 0 - да)',
  `agency_id` MEDIUMINT(9) NOT NULL COMMENT 'ИД агенства',
  `status` TINYINT(2) NOT NULL DEFAULT '0' COMMENT 'Статус размещения объявления (1 - успешно, 0 - ошибка запроса)',
  `processed_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата когда выполнен запрос статистики'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci COMMENT='Таблица статистики размещения объявлений';

ALTER TABLE `ads_stats`
  ADD PRIMARY KEY (`id`),
  ADD KEY `idx_ads_stats_object` (`object_id`, `service_id`),
  ADD KEY `idx_ads_stats_stats` (`views`, `contacts`, `favorites`, `calls`),
  ADD KEY `idx_ads_stats_adv` (`url`, `errors`(255)),
  ADD KEY `idx_ads_stats_flags` (`is_error`, `is_manual`),
  ADD KEY `idx_ads_stats_processed` (`agency_id`, `status`, `processed_at`);

ALTER TABLE `ads_stats`
  MODIFY `id` BIGINT(11) NOT NULL AUTO_INCREMENT COMMENT 'PK';

