# Debug Guide: Kunde Projekt Oprettelse ## 🔧 Ændringer Implementeret ### Problem Fejl ved oprettelse af kunde projekt - "⚠️ Fejl ved oprettelse af kunde projekt" ### Root Cause Analysis Der var **field name mismatch** mellem frontend og backend: - Frontend sender: `projectAddress` - Backend forventede: `customerAddress` ### Løsning Implementeret #### 1. Backend Service Fix **File**: `backend/src/services/customerProjectService.js` ```javascript // Nu accepterer begge field navne: const { projectName, customerName, customerEmail, customerPhone, customerAddress, projectAddress, // Frontend sender denne projectDescription } = projectData; // Bruger projectAddress hvis customerAddress mangler const address = customerAddress || projectAddress; ``` #### 2. Omfattende Logging **Frontend** (`frontend/src/components/ProjectCreation.js`): ```javascript ✅ Logger formData før send ✅ Logger API URL ✅ Logger response status og headers ✅ Tjekker Content-Type før JSON parsing ✅ Logger success/error responses ✅ Viser detaljeret fejlbesked ``` **Backend Route** (`backend/src/routes/customerProjects.js`): ```javascript ✅ Logger incoming request data ✅ Logger validation status ✅ Logger success/error med detaljer ✅ Returnerer error.message i response ``` **Backend Service** (`backend/src/services/customerProjectService.js`): ```javascript ✅ Logger data ved service start ✅ Logger prepared values før DB insert ✅ Logger inserted ID ved success ✅ Logger detailed error ved fejl ``` ## 🐛 Hvordan Man Debugger ### 1. Åbn Browser Console (F12) Gå til Console tab ### 2. Prøv at Oprette Projekt 1. Vælg kunde: "Alexander Warme" 2. Indtast projekt navn: "Test Projekt" 3. Klik "Opret Projekt" ### 3. Tjek Console Logs **Success scenario:** ``` 📤 Sending project creation request: { projectName: "Test Projekt", customerName: "Alexander Warme", customerEmail: "alexander@warme.dk", customerPhone: "...", projectAddress: "...", projectDescription: "" } 🌐 API URL: http://localhost:3010/api/customer-projects/projects 📡 Response status: 200 📦 Response data: { success: true, project: {...} } ✅ Project created successfully: {...} ``` **Error scenario:** ``` 📤 Sending project creation request: {...} 📡 Response status: 500 ❌ Server returned error: Fejl ved oprettelse af kunde projekt ``` ### 4. Tjek Backend Logs ```bash pm2 logs tilbudgivern-unified --lines 50 ``` **Success scenario:** ``` 📥 Create project request received: { projectName: 'Test Projekt', customerName: 'Alexander Warme', ... } ✅ Validation passed, creating project... 🏗️ Creating project in service with data: {...} 📝 Prepared values for insertion: {...} ✅ Project inserted with ID: 123 ✅ Project created successfully: {...} ``` **Error scenario:** ``` 📥 Create project request received: {...} ⚠️ Validation failed: Missing required fields eller ❌ Error in createProject service: [Error details] ``` ## 🔍 Mulige Fejl og Løsninger ### 1. "Validation failed: Missing required fields" **Problem**: projectName eller customerName mangler **Løsning**: Tjek at formData indeholder begge felter ### 2. "Database error: ER_NO_SUCH_TABLE" **Problem**: `customer_projects` tabel findes ikke **Løsning**: ```bash mysql -u tilbudgivern_service -p tilbudgivern SHOW TABLES LIKE 'customer_projects'; ``` ### 3. "Database error: ER_DUP_FIELDNAME" **Problem**: Duplikeret kolonne navn **Løsning**: Tjek database schema matcher query ### 4. "Response is not JSON" **Problem**: Server crashede eller returnerer HTML **Løsning**: Tjek backend logs for crash reason ### 5. NULL constraint violation **Problem**: Required field sendt som null **Løsning**: Service nu sender `null` for optional fields ## 📊 Database Schema ```sql CREATE TABLE customer_projects ( id INT AUTO_INCREMENT PRIMARY KEY, project_name VARCHAR(255) NOT NULL, customer_name VARCHAR(255) NOT NULL, customer_email VARCHAR(255), customer_phone VARCHAR(50), customer_address TEXT, project_description TEXT, project_status VARCHAR(50) DEFAULT 'draft', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); ``` ## ✅ Test Checklist - [ ] Browser console åben (F12) - [ ] Backend logs kører: `pm2 logs tilbudgivern-unified` - [ ] Vælg kunde via Customer Search - [ ] Indtast projekt navn (min 3 tegn) - [ ] Tjek at customerName er auto-udfyldt - [ ] Klik "Opret Projekt" - [ ] Tjek console for success/error - [ ] Tjek backend logs for details - [ ] Verificer projekt blev oprettet (hvis success) ## 🎯 Næste Skridt 1. **Åbn applikationen** i browser 2. **Åbn console** (F12) 3. **Prøv at oprette projekt** med data: - Projekt navn: "Debug Test Projekt" - Kunde: Vælg "Alexander Warme" fra søgning 4. **Del logs** hvis der stadig er fejl: - Console logs fra browser - Backend logs fra `pm2 logs` ## 💡 Tips - Serveren er genstartet med nye ændringer - Frontend er rebuilt med debug logging - Alle logs er nu meget mere detaljerede - Check både browser console OG backend logs