import Database from 'better-sqlite3'; const db = new Database('local.db'); function seed() { console.log('Seeding database...'); // Create settings table if it doesn't exist db.exec(` CREATE TABLE IF NOT EXISTS settings ( key TEXT PRIMARY KEY, value TEXT ) `); // Create email_templates table db.exec(` CREATE TABLE IF NOT EXISTS email_templates ( id INTEGER PRIMARY KEY, subject TEXT, body TEXT ) `); // Check if the hourly_rate setting already exists const settingStmt = db.prepare('SELECT * FROM settings WHERE key = ?'); const hourlyRateSetting = settingStmt.get('hourly_rate'); if (!hourlyRateSetting) { // Insert the default hourly rate const insertSetting = db.prepare( "INSERT INTO settings (key, value) VALUES (?, ?)" ); insertSetting.run("hourly_rate", "100"); console.log('Default hourly rate set.'); } else { console.log('Hourly rate setting already exists.'); } // Check if default email template exists const templateStmt = db.prepare('SELECT * FROM email_templates WHERE id = ?'); const defaultTemplate = templateStmt.get(1); const defaultSubject = "Your EstimateFlow Project Estimate is Ready!"; const defaultBody = ` Your Project Estimate

EstimateFlow

Hello, [User Name],

Thank you for using EstimateFlow. We've prepared a rough estimate for your project based on your selections.

[EstimateDetails]

Please note that this is a preliminary estimate. For a more detailed quote and to discuss your project further, please don't hesitate to contact us.

Contact Us

Best regards,
The EstimateFlow Team

© ${new Date().getFullYear()} EstimateFlow. All rights reserved.

`; if (!defaultTemplate) { const insertTemplate = db.prepare( "INSERT INTO email_templates (id, subject, body) VALUES (?, ?, ?)" ); insertTemplate.run(1, defaultSubject, defaultBody); console.log('Default email template created.'); } else { // If you want to update the template on every seed, you can use an UPDATE query here const updateTemplate = db.prepare("UPDATE email_templates SET subject = ?, body = ? WHERE id = ?"); updateTemplate.run(defaultSubject, defaultBody, 1); console.log('Default email template updated.'); } console.log('Seeding complete.'); } try { seed(); } catch (e) { console.error('Seeding failed:'); console.error(e); process.exit(1); } finally { db.close(); }