bmc_hub/migrations/007_dev_portal.sql

109 lines
4.1 KiB
MySQL
Raw Normal View History

-- DEV Portal Migration
-- Features roadmap and workflow diagrams
-- Features/Roadmap table
CREATE TABLE IF NOT EXISTS dev_features (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT,
version VARCHAR(50), -- V1, V2, V3, etc.
status VARCHAR(50) DEFAULT 'planlagt', -- planlagt, i gang, færdig, sat på pause
priority INTEGER DEFAULT 50,
expected_date DATE,
completed_date DATE,
created_by_user_id INTEGER REFERENCES users(user_id) ON DELETE SET NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Brainstorm/Ideas table
CREATE TABLE IF NOT EXISTS dev_ideas (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT,
category VARCHAR(100), -- feature, improvement, bugfix, etc.
votes INTEGER DEFAULT 0,
created_by_user_id INTEGER REFERENCES users(user_id) ON DELETE SET NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Workflow diagrams table (storing draw.io XML)
CREATE TABLE IF NOT EXISTS dev_workflows (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT,
category VARCHAR(100), -- flowchart, process, system_diagram, etc.
diagram_xml TEXT NOT NULL, -- draw.io XML format
thumbnail_url TEXT, -- Preview image URL (optional)
created_by_user_id INTEGER REFERENCES users(user_id) ON DELETE SET NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Indexes
CREATE INDEX IF NOT EXISTS idx_dev_features_version ON dev_features(version);
CREATE INDEX IF NOT EXISTS idx_dev_features_status ON dev_features(status);
CREATE INDEX IF NOT EXISTS idx_dev_workflows_category ON dev_workflows(category);
-- Update timestamp trigger for dev_features
CREATE OR REPLACE FUNCTION update_dev_features_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER dev_features_updated_at_trigger
BEFORE UPDATE ON dev_features
FOR EACH ROW
EXECUTE FUNCTION update_dev_features_updated_at();
-- Update timestamp trigger for dev_ideas
CREATE OR REPLACE FUNCTION update_dev_ideas_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER dev_ideas_updated_at_trigger
BEFORE UPDATE ON dev_ideas
FOR EACH ROW
EXECUTE FUNCTION update_dev_ideas_updated_at();
-- Update timestamp trigger for dev_workflows
CREATE OR REPLACE FUNCTION update_dev_workflows_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER dev_workflows_updated_at_trigger
BEFORE UPDATE ON dev_workflows
FOR EACH ROW
EXECUTE FUNCTION update_dev_workflows_updated_at();
-- Sample data
INSERT INTO dev_features (title, description, version, status, priority, expected_date) VALUES
('Dashboard Forbedringer', 'Live data og bedre statistik visualisering', 'V1', 'færdig', 90, '2025-12-01'),
('Global Søgning', 'Søg på tværs af kunder, kontakter, leverandører med CVR/telefon', 'V1', 'færdig', 95, '2025-12-06'),
('Settings & Brugerstyring', 'Konfiguration og user management', 'V1', 'færdig', 85, '2025-12-06'),
('vTiger Integration', 'Synkronisering med vTiger CRM', 'V2', 'planlagt', 80, '2026-01-15'),
('e-conomic Integration', 'Fakturering og økonomi sync', 'V2', 'planlagt', 75, '2026-02-01'),
('Rapport Generator', 'PDF rapporter for kunder', 'V3', 'planlagt', 60, '2026-03-01');
INSERT INTO dev_ideas (title, description, category, votes) VALUES
('Dark mode forbedringer', 'Bedre kontrast i dark mode', 'improvement', 5),
('Mobile app', 'Native iOS/Android app', 'feature', 12),
('AI Assistent', 'ChatGPT integration til kundesupport', 'feature', 8),
('Eksport til Excel', 'Eksporter alle lister til Excel', 'feature', 15);
COMMENT ON TABLE dev_features IS 'Development roadmap features with versioning and status tracking';
COMMENT ON TABLE dev_ideas IS 'Brainstorm and idea collection for future development';
COMMENT ON TABLE dev_workflows IS 'Workflow diagrams created with draw.io, stored as XML';