generated from MokoConsulting/Template-Joomla
102 lines
3.8 KiB
SQL
102 lines
3.8 KiB
SQL
--
|
|
-- MokoSuite Insight Tables
|
|
--
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuitesight_dashboards` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`title` VARCHAR(255) NOT NULL,
|
|
`description` TEXT,
|
|
`user_id` INT NOT NULL,
|
|
`is_shared` TINYINT NOT NULL DEFAULT 0,
|
|
`layout` JSON DEFAULT NULL,
|
|
`auto_refresh_seconds` INT UNSIGNED NOT NULL DEFAULT 60,
|
|
`published` TINYINT NOT NULL DEFAULT 1,
|
|
`ordering` INT NOT NULL DEFAULT 0,
|
|
`created` DATETIME NOT NULL,
|
|
`modified` DATETIME DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_user` (`user_id`),
|
|
KEY `idx_shared` (`is_shared`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuitesight_widgets` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`dashboard_id` INT UNSIGNED NOT NULL,
|
|
`title` VARCHAR(255) NOT NULL,
|
|
`type` ENUM('counter','line_chart','bar_chart','pie_chart','gauge','table','sparkline','heatmap','funnel') NOT NULL DEFAULT 'counter',
|
|
`data_source` VARCHAR(255) NOT NULL,
|
|
`config` JSON DEFAULT NULL,
|
|
`position_x` INT UNSIGNED NOT NULL DEFAULT 0,
|
|
`position_y` INT UNSIGNED NOT NULL DEFAULT 0,
|
|
`width` INT UNSIGNED NOT NULL DEFAULT 4,
|
|
`height` INT UNSIGNED NOT NULL DEFAULT 3,
|
|
`ordering` INT NOT NULL DEFAULT 0,
|
|
`created` DATETIME NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_dashboard` (`dashboard_id`),
|
|
KEY `idx_source` (`data_source`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuitesight_data_sources` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(255) NOT NULL,
|
|
`module` VARCHAR(100) NOT NULL,
|
|
`type` ENUM('scalar','list','timeseries') NOT NULL DEFAULT 'scalar',
|
|
`query_class` VARCHAR(500) NOT NULL DEFAULT '',
|
|
`description` TEXT,
|
|
`active` TINYINT NOT NULL DEFAULT 1,
|
|
`created` DATETIME NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `idx_name` (`name`),
|
|
KEY `idx_module` (`module`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
INSERT IGNORE INTO `#__mokosuitesight_data_sources`
|
|
(`name`, `module`, `type`, `description`, `active`, `created`) VALUES
|
|
('crm.contact_count', 'crm', 'scalar', 'Total CRM contacts', 1, NOW()),
|
|
('crm.deals_pipeline', 'crm', 'list', 'Deals by pipeline stage', 1, NOW()),
|
|
('crm.revenue_monthly', 'crm', 'timeseries', 'Monthly revenue (12 months)', 1, NOW()),
|
|
('pos.daily_sales', 'pos', 'scalar', 'Today total sales', 1, NOW()),
|
|
('hrm.headcount', 'hrm', 'scalar', 'Active employee count', 1, NOW());
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuitesight_alerts` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`title` VARCHAR(255) NOT NULL,
|
|
`data_source` VARCHAR(255) NOT NULL,
|
|
`operator` ENUM('gt','gte','lt','lte','eq','neq') NOT NULL DEFAULT 'gt',
|
|
`threshold` DECIMAL(15,2) NOT NULL,
|
|
`cooldown_minutes` INT UNSIGNED NOT NULL DEFAULT 60,
|
|
`notify_user_id` INT DEFAULT NULL,
|
|
`active` TINYINT NOT NULL DEFAULT 1,
|
|
`last_triggered` DATETIME DEFAULT NULL,
|
|
`created` DATETIME NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_source` (`data_source`),
|
|
KEY `idx_active` (`active`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuitesight_alert_log` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`alert_id` INT UNSIGNED NOT NULL,
|
|
`value` DECIMAL(15,2) NOT NULL,
|
|
`threshold` DECIMAL(15,2) NOT NULL,
|
|
`acknowledged` TINYINT NOT NULL DEFAULT 0,
|
|
`acknowledged_by` INT DEFAULT NULL,
|
|
`acknowledged_at` DATETIME DEFAULT NULL,
|
|
`triggered_at` DATETIME NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_alert` (`alert_id`),
|
|
KEY `idx_ack` (`acknowledged`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS `#__mokosuitesight_snapshots` (
|
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`dashboard_id` INT UNSIGNED NOT NULL,
|
|
`data` JSON NOT NULL,
|
|
`captured_at` DATETIME NOT NULL,
|
|
`captured_by` INT NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_dashboard` (`dashboard_id`),
|
|
KEY `idx_date` (`captured_at`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|