Files
tilbudgivern/database_updates.sql
T
alex 5923690006 feat(database): Add order_id and order_status to project_quotes, create order_sync_log and dynamic_categories tables, and insert default categories for materials
feat(csv): Add example_materials.csv for material pricing

feat(frontend): Implement material management and upload functionality in App component, including authentication and category filtering

docs(specification): Add byggespecifikation for Tagarbejde og konstruktionsudskiftning project
2025-09-16 17:27:35 +02:00

64 lines
2.6 KiB
SQL

-- Add order_id column to project_quotes table for ordrestatus.dk integration
ALTER TABLE project_quotes
ADD COLUMN order_id VARCHAR(100) NULL COMMENT 'ID fra ordrestatus.dk system',
ADD COLUMN order_status VARCHAR(50) NULL DEFAULT 'pending' COMMENT 'Status fra ordrestatus.dk',
ADD COLUMN order_url VARCHAR(500) NULL COMMENT 'Tracking URL fra ordrestatus.dk';
-- Create index for faster lookups
CREATE INDEX idx_project_quotes_order_id ON project_quotes(order_id);
-- Create table for tracking order synchronization
CREATE TABLE IF NOT EXISTS order_sync_log (
id INT AUTO_INCREMENT PRIMARY KEY,
quote_id INT NOT NULL,
order_id VARCHAR(100) NOT NULL,
sync_action VARCHAR(50) NOT NULL,
sync_status VARCHAR(20) NOT NULL,
sync_data JSON,
error_message TEXT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_quote_id (quote_id),
INDEX idx_order_id (order_id),
FOREIGN KEY (quote_id) REFERENCES project_quotes(id) ON DELETE CASCADE
);
-- Create table for dynamic material categories management
CREATE TABLE IF NOT EXISTS dynamic_categories (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) UNIQUE NOT NULL,
parent_id INT NULL,
description TEXT,
is_active BOOLEAN DEFAULT TRUE,
sort_order INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_parent_id (parent_id),
FOREIGN KEY (parent_id) REFERENCES dynamic_categories(id) ON DELETE SET NULL
);
-- Insert default categories for tømrer work
INSERT IGNORE INTO dynamic_categories (name, description, sort_order) VALUES
('Trækonstruktion', 'Konstruktionstræ, spærtræ, bjælker', 1),
('Pladematerialer', 'Gipsplader, spanplader, krydsfiner', 2),
('Isolering', 'Mineraluld, glasuld, fiberplader', 3),
('Beslag og skruer', 'Metalbejslag, træskruer, bolte', 4),
('Tag og tækning', 'Tagpap, tagsten, tagrender', 5),
('Gulvmaterialer', 'Parket, laminat, tæpper', 6),
('Døre og vinduer', 'Inderdøre, yderdøre, vinduer', 7),
('Værktøj og maskiner', 'Håndværktøj, elværktøj', 8),
('Transport og levering', 'Leveringsomkostninger, transport', 9),
('Øvrigt', 'Andre materialer og ydelser', 10);
-- Create table for CSV import history
CREATE TABLE IF NOT EXISTS csv_import_history (
id INT AUTO_INCREMENT PRIMARY KEY,
filename VARCHAR(255) NOT NULL,
import_type ENUM('static', 'dynamic') DEFAULT 'dynamic',
total_rows INT NOT NULL DEFAULT 0,
successful_rows INT NOT NULL DEFAULT 0,
failed_rows INT NOT NULL DEFAULT 0,
detected_columns JSON,
import_summary JSON,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);