import db from '../src/lib/db.js'; import initializeDatabase from '../src/lib/init-db.js'; // Initialize the database initializeDatabase(); // Sample projects data const sampleProjects = [ { contract_id: 1, project_name: 'Residential Complex Alpha', address: 'ul. Główna 123', plot: 'Plot 45/6', district: 'Śródmieście', unit: 'Unit A', city: 'Warszawa', investment_number: 'INV-2025-001', finish_date: '2025-06-30', wp: 'WP-001', contact: 'Jan Kowalski, tel. 123-456-789', notes: 'Modern residential building with 50 apartments', coordinates: '52.2297,21.0122', project_type: 'design+construction', project_status: 'registered' }, { contract_id: 1, project_name: 'Office Building Beta', address: 'al. Jerozolimskie 50', plot: 'Plot 12/8', district: 'Mokotów', unit: 'Unit B', city: 'Warszawa', investment_number: 'INV-2025-002', finish_date: '2025-09-15', wp: 'WP-002', contact: 'Anna Nowak, tel. 987-654-321', notes: 'Commercial office space, 10 floors', coordinates: '52.2215,21.0071', project_type: 'construction', project_status: 'in_progress_design' }, { contract_id: 2, project_name: 'Shopping Mall Gamma', address: 'pl. Centralny 1', plot: 'Plot 78/3', district: 'Centrum', unit: 'Unit C', city: 'Kraków', investment_number: 'INV-2025-003', finish_date: '2025-12-20', wp: 'WP-003', contact: 'Piotr Wiśniewski, tel. 555-123-456', notes: 'Large shopping center with parking', coordinates: '50.0647,19.9450', project_type: 'design+construction', project_status: 'in_progress_construction' }, { contract_id: 2, project_name: 'Industrial Warehouse Delta', address: 'ul. Przemysłowa 100', plot: 'Plot 200/15', district: 'Przemysłowa', unit: 'Unit D', city: 'Łódź', investment_number: 'INV-2025-004', finish_date: '2025-08-10', wp: 'WP-004', contact: 'Maria Lewandowska, tel. 444-789-012', notes: 'Logistics warehouse facility', coordinates: '51.7592,19.4600', project_type: 'design', project_status: 'fulfilled' }, { contract_id: 1, project_name: 'Hotel Complex Epsilon', address: 'ul. Morska 25', plot: 'Plot 5/2', district: 'Nadmorze', unit: 'Unit E', city: 'Gdańsk', investment_number: 'INV-2025-005', finish_date: '2025-11-05', wp: 'WP-005', contact: 'Tomasz Malinowski, tel. 333-456-789', notes: 'Luxury hotel with conference facilities', coordinates: '54.3520,18.6466', project_type: 'design+construction', project_status: 'registered' }, { contract_id: 2, project_name: 'School Complex Zeta', address: 'ul. Edukacyjna 15', plot: 'Plot 30/4', district: 'Edukacyjny', unit: 'Unit F', city: 'Poznań', investment_number: 'INV-2025-006', finish_date: '2025-07-20', wp: 'WP-006', contact: 'Ewa Dombrowska, tel. 222-333-444', notes: 'Modern educational facility with sports complex', coordinates: '52.4064,16.9252', project_type: 'design', project_status: 'in_progress_design' }, { contract_id: 1, project_name: 'Medical Center Eta', address: 'al. Zdrowia 8', plot: 'Plot 67/9', district: 'Medyczny', unit: 'Unit G', city: 'Wrocław', investment_number: 'INV-2025-007', finish_date: '2025-10-30', wp: 'WP-007', contact: 'Dr. Marek Szymankowski, tel. 111-222-333', notes: 'Specialized medical center with emergency department', coordinates: '51.1079,17.0385', project_type: 'construction', project_status: 'in_progress_construction' }, { contract_id: 2, project_name: 'Sports Stadium Theta', address: 'ul. Sportowa 50', plot: 'Plot 150/20', district: 'Sportowy', unit: 'Unit H', city: 'Szczecin', investment_number: 'INV-2025-008', finish_date: '2025-05-15', wp: 'WP-008', contact: 'Katarzyna Wojcik, tel. 999-888-777', notes: 'Multi-purpose sports stadium with seating for 20,000', coordinates: '53.4289,14.5530', project_type: 'design+construction', project_status: 'fulfilled' }, { contract_id: 1, project_name: 'Library Complex Iota', address: 'pl. Wiedzy 3', plot: 'Plot 25/7', district: 'Kulturalny', unit: 'Unit I', city: 'Lublin', investment_number: 'INV-2025-009', finish_date: '2025-08-25', wp: 'WP-009', contact: 'Prof. Andrzej Kowalewski, tel. 777-666-555', notes: 'Modern library with digital archives and community spaces', coordinates: '51.2465,22.5684', project_type: 'design', project_status: 'registered' } ]; console.log('Creating sample test projects...\n'); sampleProjects.forEach((projectData, index) => { try { // Generate project number based on contract const contractInfo = db.prepare('SELECT contract_number FROM contracts WHERE contract_id = ?').get(projectData.contract_id); const existingProjects = db.prepare('SELECT COUNT(*) as count FROM projects WHERE contract_id = ?').get(projectData.contract_id); const sequentialNumber = existingProjects.count + 1; const projectNumber = `${sequentialNumber}/${contractInfo.contract_number}`; const result = db.prepare(` INSERT INTO projects ( contract_id, project_name, project_number, address, plot, district, unit, city, investment_number, finish_date, wp, contact, notes, coordinates, project_type, project_status, created_at, updated_at ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP) `).run( projectData.contract_id, projectData.project_name, projectNumber, projectData.address, projectData.plot, projectData.district, projectData.unit, projectData.city, projectData.investment_number, projectData.finish_date, projectData.wp, projectData.contact, projectData.notes, projectData.coordinates, projectData.project_type, projectData.project_status ); console.log(`✓ Created project: ${projectData.project_name} (ID: ${result.lastInsertRowid}, Number: ${projectNumber})`); } catch (error) { console.error(`✗ Error creating project ${projectData.project_name}:`, error.message); } }); console.log('\nSample test projects created successfully!');