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,
8
9/**
10 * Run all migrations to set up the database schema
11 */
12export async function runMigrations() {