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)
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
46 }
47
48 // Now it's time to upload things to database and blob storage
49 // First, add to database, and get the ID
50 const id = await sqlite.execute(
51 `INSERT INTO ${TABLE_NAME} (title, data, type, time) VALUES ($title, $data, $type, CURRENT_TIMESTAMP)`,
379 const { OpenAI } = await import("https://esm.town/v/std/openai");
380
381 // --- Database Setup (Expanded Schema) ---
382 const TABLE_KEY = new URL(import.meta.url).pathname.replace(/[^a-zA-Z0-9_]/g, "_").slice(1);
383 const PROFILE_TABLE = `business_profiles_${TABLE_KEY}`;
442 /* ... error handling ... */
443 console.error("Error fetching profile:", e.message);
444 return new Response(JSON.stringify({ error: "Database error fetching profile" }), {
445 status: 500,
446 headers: { "Content-Type": "application/json" },
469 /* ... error handling ... */
470 console.error("Error saving profile:", e.message);
471 return new Response(JSON.stringify({ error: "Database error saving profile" }), { status: 500 });
472 }
473 }
172
173/**
174 * Get database statistics for the homepage
175 */
176export async function getSearchStats(): Promise<{
881 const offset = (page - 1) * pageSize;
882
883 // Start all database queries in parallel
884 // 1. Launch count queries
885 const countsPromise = Promise.all([
968 );
969
970 // Wait for all database operations to complete in parallel
971 const [
972 [totalFileResults, totalValResults, totalUserResults],