6import { Hono } from "npm:hono";
7import { type Memory } from "../shared/types.ts";
8import { createMemory, deleteMemory, getAllMemories, updateMemory } from "./database/queries.ts";
9
10const app = new Hono();
34
35/**
36 * Store a chat message in the database
37 */
38export async function storeChatMessage(
130 }
131
132 console.log(`Weather forecast updated in the database.`);
133 return summary;
134}
125 }
126
127 console.log(`Calendar events imported into the database.`);
128 return events;
129 } catch (error) {
8
9/**
10 * Retrieves previously generated fun facts from the memories database
11 * @returns Array of previous fun facts
12 */
47
48/**
49 * Inserts a fun fact into the memories database
50 * @param date Date for the fun fact in ISO format
51 * @param factText The fun fact text
208```
209โโโ backend/
210โ โโโ database/
211โ โ โโโ migrations.ts # Schema definitions
212โ โ โโโ queries.ts # DB query functions
270- Handle API calls properly with proper error catching
271
272### Database Patterns
273- Run migrations on startup or comment out for performance
274- Change table names when modifying schemas rather than altering
8
9/**
10 * Retrieves previously generated fun facts from the memories database
11 * @returns Array of previous fun facts
12 */
47
48/**
49 * Inserts a fun fact into the memories database
50 * @param date Date for the fun fact in ISO format
51 * @param factText The fun fact text
126 }
127
128 console.log(`Weather forecast updated in the database.`);
129 return summary;
130}
486}
487
488// Setup required database tables
489async function setupDatabase() {
490 // Create vote_sessions table if it doesn't exist
491 await sqlite.execute(`
525 `);
526
527 console.log("โ
Database setup complete");
528}
529
534
535 try {
536 // Setup database tables
537 await setupDatabase();
538
539 // Load configurations
802export async function getPreviousVoteResults(limit: number = 5) {
803 try {
804 await setupDatabase();
805
806 const results = await sqlite.execute({
50 const now = Math.floor(Date.now() / 1000);
51
52 // Get the token from the database
53 const { rows } = await sqlite.execute(
54 `SELECT email, expires_at FROM ${MAGIC_LINKS_TABLE} WHERE token = ?`,