54 lines
2.1 KiB
MySQL
54 lines
2.1 KiB
MySQL
|
|
-- Ticket Digest Report tables
|
||
|
|
-- Stores config, delivery webhooks, and report history for LLM-analyzed ticket digest reports
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS ticket_digest_config (
|
||
|
|
id INTEGER PRIMARY KEY DEFAULT 1,
|
||
|
|
daily_enabled BOOLEAN NOT NULL DEFAULT false,
|
||
|
|
weekly_enabled BOOLEAN NOT NULL DEFAULT false,
|
||
|
|
monthly_enabled BOOLEAN NOT NULL DEFAULT false,
|
||
|
|
daily_cron VARCHAR(50) NOT NULL DEFAULT '0 7 * * 1-5',
|
||
|
|
weekly_cron VARCHAR(50) NOT NULL DEFAULT '0 7 * * 1',
|
||
|
|
monthly_cron VARCHAR(50) NOT NULL DEFAULT '0 7 1 * *',
|
||
|
|
llm_provider VARCHAR(20) NOT NULL DEFAULT 'anthropic',
|
||
|
|
llm_model VARCHAR(100) NOT NULL DEFAULT 'claude-sonnet-4-20250514',
|
||
|
|
include_noise_analysis BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
include_sla_analysis BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
include_resource_analysis BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
include_client_analysis BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
include_recommendations BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||
|
|
updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||
|
|
CONSTRAINT single_config CHECK (id = 1)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS ticket_digest_webhooks (
|
||
|
|
id SERIAL PRIMARY KEY,
|
||
|
|
label VARCHAR(200) NOT NULL,
|
||
|
|
webhook_url TEXT NOT NULL,
|
||
|
|
digest_types TEXT[] NOT NULL DEFAULT '{daily,weekly,monthly}',
|
||
|
|
enabled BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
last_delivered_at TIMESTAMP,
|
||
|
|
last_status VARCHAR(20),
|
||
|
|
created_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS ticket_digest_reports (
|
||
|
|
id SERIAL PRIMARY KEY,
|
||
|
|
period_type VARCHAR(10) NOT NULL, -- 'daily', 'weekly', 'monthly'
|
||
|
|
period_start TIMESTAMP NOT NULL,
|
||
|
|
period_end TIMESTAMP NOT NULL,
|
||
|
|
generated_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||
|
|
stats JSONB NOT NULL DEFAULT '{}',
|
||
|
|
llm_analysis TEXT,
|
||
|
|
card_payload JSONB,
|
||
|
|
delivery_status JSONB DEFAULT '{}',
|
||
|
|
tokens_used INTEGER,
|
||
|
|
processing_time_ms INTEGER,
|
||
|
|
created_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_ticket_digest_reports_period ON ticket_digest_reports(period_type, period_start DESC);
|
||
|
|
|
||
|
|
-- Insert default config
|
||
|
|
INSERT INTO ticket_digest_config (id) VALUES (1) ON CONFLICT (id) DO NOTHING;
|