- Add Veeam RPO analysis page (/veeam-analysis) and comparison page (/veeam-comparison) - Add API routes: /api/veeam/rpo-analyze, rpo-comparison, rpo-offline-log, ticket-analysis - Add veeam-rpo-service.ts enhancements (RPO logic, offline detection, comparison) - Add veeam-analysis-state.ts and rmm-device-resolver.ts services - Add migrations 065-068: company_teams, veeam_rpo_offline_log, rpo_comparison_tables, veeam_ticket_analysis - Add backup-status page updates and nav links for new Veeam pages - Add scripts: deactivate-cis-for-inactive-companies, workstation category updates - Add docs: mimecast-api-guide, veeam-backup-alerting-recommendation, workstation-backup-overview, ticket-analyzer-prompt - Minor: webhook-service, entity-sync, entity-mapper, sync-helpers, sync.ts, middleware.ts updates
31 lines
1.4 KiB
SQL
31 lines
1.4 KiB
SQL
CREATE TABLE IF NOT EXISTS veeam_ticket_analysis (
|
|
id SERIAL PRIMARY KEY,
|
|
ticket_number TEXT NOT NULL UNIQUE,
|
|
ticket_id BIGINT,
|
|
company_id BIGINT,
|
|
company_name TEXT,
|
|
device_hostname TEXT,
|
|
ticket_created_at TIMESTAMPTZ,
|
|
ticket_closed_at TIMESTAMPTZ,
|
|
same_day_close BOOLEAN NOT NULL DEFAULT false,
|
|
hours_worked NUMERIC(10,2) NOT NULL DEFAULT 0,
|
|
note_count INTEGER NOT NULL DEFAULT 0,
|
|
-- LLM classification
|
|
problem_category TEXT NOT NULL,
|
|
resolution_type TEXT NOT NULL,
|
|
skills_required TEXT[] NOT NULL DEFAULT '{}',
|
|
complexity TEXT NOT NULL,
|
|
device_was_offline BOOLEAN,
|
|
backup_completed_before_tech BOOLEAN,
|
|
preventable BOOLEAN,
|
|
work_summary TEXT,
|
|
recommended_procedure TEXT,
|
|
-- meta
|
|
model TEXT,
|
|
analyzed_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_vta_ticket_number ON veeam_ticket_analysis(ticket_number);
|
|
CREATE INDEX IF NOT EXISTS idx_vta_category ON veeam_ticket_analysis(problem_category);
|
|
CREATE INDEX IF NOT EXISTS idx_vta_company ON veeam_ticket_analysis(company_id);
|
|
CREATE INDEX IF NOT EXISTS idx_vta_created ON veeam_ticket_analysis(ticket_created_at);
|