Files
tilbudgivern/installation_data/installation_manuals_migration.sql
alexpolo1 f8512149b5 feat: Add automated Bygma installation manual scraper with AI analysis
Features:
- Automated login and PDF download from Bygma
- GPT-4o AI analysis of installation manuals
- Extracts: steps, time estimates, tools, safety, materials, skill level
- Direct database storage (installation_manuals table)
- Auto-cleanup: deletes PDFs after analysis to save space
- Node.js integration for quote generation

New files:
- scrape_and_analyze_bygma.py - Main automated scraper
- scrape_bygma_with_login.py - Simple download script
- analyze_manual_pdfs.py - Standalone PDF analyzer
- get_installation_tasks.js - Node.js quote integration
- demo_tilbud_opgave.js - Working demo
- BYGMA_AUTOMATION_README.md - Complete documentation

Database:
- installation_manuals table with JSON fields
- Sample data: 1 manual analyzed (Cembrit Bølgeplader)

Integration:
- getInstallationTask(productName, quantity) function
- Returns formatted task descriptions for quotes
- Time calculations: 2.5 hours/m² example

Cleanup:
- Removed old test scripts and debug files
- Removed downloaded PDFs (saved to database)
- Organized documentation files
2025-10-20 10:19:54 +00:00

47 lines
3.0 KiB
SQL

-- Installation Manual Data Migration
-- Generated: 2025-10-20T09:37:23.583623
CREATE TABLE IF NOT EXISTS installation_manuals (
id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(255),
manufacturer VARCHAR(255),
manual_url TEXT,
manual_filename VARCHAR(255),
manual_type ENUM('installation', 'manual', 'safety') DEFAULT 'installation',
installation_steps JSON,
time_estimate_per_unit DECIMAL(5,2),
time_unit ENUM('per_sqm', 'per_piece', 'per_project') DEFAULT 'per_sqm',
required_tools JSON,
safety_requirements JSON,
material_requirements JSON,
skill_level ENUM('let', 'medium', 'svær') DEFAULT 'medium',
weather_conditions TEXT,
key_points JSON,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_product (product_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 280_Montagevejledning_Boelgepladetag.pdf
INSERT INTO installation_manuals (
product_name, manufacturer, manual_url, manual_filename, manual_type,
installation_steps, time_estimate_per_unit, time_unit,
required_tools, safety_requirements, material_requirements,
skill_level, weather_conditions, key_points
) VALUES (
'280 Montagevejledning Boelgepladetag',
'Cembrit',
NULL,
'280_Montagevejledning_Boelgepladetag.pdf',
'installation',
'["Kontroller rethed på lægter og spær med retholt eller snor", "Monter Cembrit Plastudhængsklodser med ventilation ved tagfod", "Fastgør lægter i henhold til gældende anvisninger", "Placer Cembrit Bølgeplader på lægterne", "Monter 2 tagskruer i hver bølgeplade", "Sørg for korrekt overlæg på 110 mm", "Anvend PVC skumstrimmel for at sikre tætheden", "Ventiler ved rygning med Cembrit rygningselement", "Fjern bore- og skærestøv straks efter bearbejdning", "Afslut ved vindskede med Cembrit Vindskedeprofil", "Kontroller montagebredde ved prøveoplægning", "Sørg for minimum 14˚ taghældning", "Opbevar plader på tørt og plant underlag", "Brug Cembrit Fuglegitter ved tagfod", "Sørg for korrekt ventilation ved tagfod og kip"]',
2.5,
'per_sqm',
'["Håndværktøj", "Langsomtgående el-værktøj", "Hurtiggående el-værktøj", "Vinkelsliber med diamantklinge", "Rundsav med hårdmetalklinge", "Boremaskine med ø9 bor"]',
'["Fjern bore- og skærestøv straks", "Brug støvafsugning ved hurtigtgående værktøj", "Følg gældende regler vedr. sikkerhed og beskyttelse"]',
'{"Cembrit Bølgeplader": "1,03 stk/m²", "Cembrit Tagskruer": "2,1 stk/m²", "Cembrit PVC-skumstrimler": "1,2 m/m²", "Cembrit Stålnet": "1,1 m²/m²", "Lægter": "2,81 stk/m²"}',
'medium',
'Tørt vejr anbefales for at undgå kalkudfældninger',
'["Korrekt opbevaring og håndtering er afgørende", "Ventilation ved tagfod og kip er nødvendig", "Minimum 14˚ taghældning skal overholdes", "Fjern bore- og skærestøv straks for at undgå skader", "Brug af PVC skumstrimmel for at sikre tætheden", "Kontroller montagebredde ved prøveoplægning", "Sørg for korrekt fastgørelse med tagskruer"]'
);