14
15- `/backend/index.ts` - Main HTTP endpoint for WhatsApp webhook
16- `/backend/database/` - SQLite database setup and queries
17- `/backend/handlers/` - Message handling logic
18- `/backend/content/` - Content management for facts, audio, and video
1# Database Structure
2
3This directory contains the database setup and query functions for the WhatsApp Wikipedia Bot.
4
5## Tables
41- `ADMIN_API_KEY` - API key for admin endpoints
42
43## Database
44
45The application uses SQLite for storage with the following tables:
1import { Hono } from "https://esm.sh/hono@3.11.7";
2import { handleMessage } from "./handlers/messageHandler.ts";
3import { setupDatabase } from "./database/setup.ts";
4import { adminRouter } from "./handlers/adminHandler.ts";
5
11});
12
13// Initialize database on startup
14await setupDatabase();
15
16// WhatsApp webhook verification endpoint
1import { sqlite } from "https://esm.town/v/stevekrouse/sqlite";
2import { FACTS_TABLE, AUDIO_TABLE, VIDEO_TABLE } from "../database/setup.ts";
3
4// Add a new fact
7export const VIDEO_TABLE = "whatsapp_wiki_video_v1";
8
9export async function setupDatabase() {
10 // Create users table
11 await sqlite.execute(`
5 getSubscriptionByUserId,
6 updateSubscriptionStatus
7} from '../database/queries.ts';
8import { ApiResponse, Subscription, SubscriptionPlan } from '../../shared/types.ts';
9
9 deleteClip,
10 getVideoById
11} from '../database/queries.ts';
12import { generateClip, exportClip, publishToSocialMedia } from '../services/clip-service.ts';
13import { ApiResponse, Clip } from '../../shared/types.ts';
8 updateVideoStatus,
9 deleteVideo
10} from '../database/queries.ts';
11import { analyzeVideo } from '../services/ai-service.ts';
12import { ApiResponse, Video, VideoAnalysisRequest } from '../../shared/types.ts';
7 getUserById,
8 updateUserLastLogin
9} from '../database/queries.ts';
10import {
11 LoginRequest,