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
6
7- `index.ts` - Main entry point for the application
8- `database/` - Database schema and queries
9- `routes/` - API and static file routes
10
1import { Hono } from "https://esm.sh/hono@3.11.7";
2import { runMigrations } from "./database/migrations.ts";
3import api from "./routes/api.ts";
4import static_routes from "./routes/static.ts";
12});
13
14// Initialize the database
15app.use("*", async (c, next) => {
16 try {
19 await runMigrations();
20 globalThis.dbInitialized = true;
21 console.log("Database initialized successfully");
22 }
23 return await next();
24 } catch (error) {
25 console.error("Database initialization error:", error);
26 return c.text("Database initialization failed", 500);
27 }
28});
6 getRandomVocabulary,
7 updateProgress
8} from "../database/queries.ts";
9
10const api = new Hono();
1# Database Structure
2
3This directory contains the database schema and query functions for the French Learning App.
4
5## Tables
11## Files
12
13- `migrations.ts` - Database schema creation and initial data seeding
14- `queries.ts` - Functions for interacting with the database
15
16## Usage
17
18The database is automatically initialized when the application starts. The initial data includes common French phrases organized by category.
51}
52
53// Seed the database with initial categories and vocabulary
54async function seedInitialData() {
55 // Check if we already have categories