46 lines
2.3 KiB
MySQL
46 lines
2.3 KiB
MySQL
|
|
-- Morning Summary: webhooks, config, and run history
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS morning_summary_webhooks (
|
||
|
|
id SERIAL PRIMARY KEY,
|
||
|
|
label TEXT NOT NULL,
|
||
|
|
webhook_url TEXT NOT NULL,
|
||
|
|
enabled BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
last_delivered_at TIMESTAMPTZ,
|
||
|
|
last_status TEXT,
|
||
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS morning_summary_config (
|
||
|
|
id INTEGER PRIMARY KEY DEFAULT 1 CHECK (id = 1),
|
||
|
|
weekend_suppression BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
monday_extended_window BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
severity_filter INTEGER NOT NULL DEFAULT 2,
|
||
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
INSERT INTO morning_summary_config (id, weekend_suppression, monday_extended_window, severity_filter)
|
||
|
|
VALUES (1, true, true, 2)
|
||
|
|
ON CONFLICT (id) DO NOTHING;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS morning_summaries (
|
||
|
|
id SERIAL PRIMARY KEY,
|
||
|
|
generated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
|
|
window_from TIMESTAMPTZ NOT NULL,
|
||
|
|
window_to TIMESTAMPTZ NOT NULL,
|
||
|
|
open_count INTEGER NOT NULL DEFAULT 0,
|
||
|
|
resolved_count INTEGER NOT NULL DEFAULT 0,
|
||
|
|
mttr_minutes INTEGER,
|
||
|
|
clients_affected TEXT[] NOT NULL DEFAULT '{}',
|
||
|
|
is_weekend_window BOOLEAN NOT NULL DEFAULT false,
|
||
|
|
card_payload JSONB,
|
||
|
|
delivery_status JSONB NOT NULL DEFAULT '{}'
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_morning_summaries_generated_at ON morning_summaries(generated_at DESC);
|
||
|
|
|
||
|
|
INSERT INTO morning_summary_webhooks (label, webhook_url, enabled) VALUES
|
||
|
|
('Technical / On-Call', 'https://appriver3651004158.webhook.office.com/webhookb2/43394fff-d546-440f-ae34-eed04c5bcd5d@1c260a52-b84d-4b7a-a179-44971dbc3949/IncomingWebhook/fe9e1350791f4923bdbd56c076eae6ed/ee54b2ef-4f27-4188-b865-47fda0eae4d1/V2y29hRVISyBYOdDq6dPs-ekvlhqCF6XGE3yUUFxt1dKQ1', true),
|
||
|
|
('Technical / Outages-Issues','https://appriver3651004158.webhook.office.com/webhookb2/43394fff-d546-440f-ae34-eed04c5bcd5d@1c260a52-b84d-4b7a-a179-44971dbc3949/IncomingWebhook/b7cf42691520467986db5a993dcd07b6/ee54b2ef-4f27-4188-b865-47fda0eae4d1/V2kdADKBhv3h3CfOfeIbe3O6HI5hIh4BRVX5UMqIxhLE81', false),
|
||
|
|
('Finance (Testing)', 'https://appriver3651004158.webhook.office.com/webhookb2/033405b3-b02e-4ce5-a200-4a3b9f387c92@1c260a52-b84d-4b7a-a179-44971dbc3949/IncomingWebhook/5fe8882c1c0342a7bbe91d763abbca57/ee54b2ef-4f27-4188-b865-47fda0eae4d1/V2rSVLy80XTdPJlBJVzUBYrMyrTi_Tmts46dA8BZjlPaw1', false)
|
||
|
|
ON CONFLICT DO NOTHING;
|