mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-04-29 18:36:23 +02:00
25 lines
No EOL
1.1 KiB
TypeScript
25 lines
No EOL
1.1 KiB
TypeScript
import { MongoClient } from "mongodb";
|
|
import { User } from "./types/types";
|
|
import { TwilioConfig, TwilioInboundCall } from "./types/voice_types";
|
|
import { z } from 'zod';
|
|
import { apiV1 } from "rowboat-shared";
|
|
|
|
const client = new MongoClient(process.env["MONGODB_CONNECTION_STRING"] || "mongodb://localhost:27017");
|
|
|
|
export const db = client.db("rowboat");
|
|
export const chatsCollection = db.collection<z.infer<typeof apiV1.Chat>>("chats");
|
|
export const chatMessagesCollection = db.collection<z.infer<typeof apiV1.ChatMessage>>("chat_messages");
|
|
export const twilioConfigsCollection = db.collection<z.infer<typeof TwilioConfig>>("twilio_configs");
|
|
export const usersCollection = db.collection<z.infer<typeof User>>("users");
|
|
export const twilioInboundCallsCollection = db.collection<z.infer<typeof TwilioInboundCall>>("twilio_inbound_calls");
|
|
|
|
// Create indexes
|
|
// twilioConfigsCollection.createIndexes([
|
|
// {
|
|
// key: { workflow_id: 1, status: 1 },
|
|
// name: "workflow_status_idx",
|
|
// // This ensures only one active config per workflow
|
|
// unique: true,
|
|
// partialFilterExpression: { status: "active" }
|
|
// }
|
|
// ]);
|