2
3/**
4 * Retrieves all memories from the database
5 * @param includeDate Whether to include date-specific memories or not
6 * @param startDate Optional start date to filter memories from (ISO format)
12 getAllMemories,
13 updateMemory,
14} from "./database/queries.ts";
15import { type Memory } from "../shared/types.ts";
16import { blob } from "https://esm.town/v/std/blob";
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
5const PROMPTS_TABLE = 'prompt_requests_v1';
6
7// Initialize database tables
8export async function initDatabase() {
9 try {
10 await sqlite.execute(`
20 )
21 `);
22 console.log("Database initialized");
23 } catch (error) {
24 console.error("Database initialization error:", error);
25 throw error;
26 }
101}
102
103// Helper function to map a database row to a PromptRequest object
104function mapRowToPromptRequest(row: any[], columns: string[]): PromptRequest {
105 const result: Record<string, any> = {};
23}
24
25// For database operations
26export interface SQLQueryResult {
27 columns: string[];
102. **Email Submission** - Users can email their prompt details, which are automatically parsed using Gemini AI.
11
12All submissions are stored in a SQLite database and can be accessed through an admin panel where administrators can:
13
14- View all prompt requests
20- `backend/` - Server-side code
21 - `index.ts` - Main API server (Hono)
22 - `database.ts` - SQLite database operations
23 - `email-service.ts` - Email processing and sending
24 - `email-handler.ts` - Email endpoint handler
43 - View all submitted requests
44 - Create and send improved prompts to users
45- **SQLite Database** for data storage
46- **Email Notifications**
47 - To admins when new requests arrive
62- Val Town Platform
63- Hono (API framework)
64- SQLite (database)
65- OpenAI (for email processing)
66- TailwindCSS (styling)