import { NextRequest, NextResponse } from "next/server"; import { GridColDef } from "@mui/x-data-grid-pro"; import { Database } from "./database"; const entities = [ "facebook", "whatsapp", "signal", "voice", "webhook", "user", ] as const; export type Entity = (typeof entities)[number]; export type FieldDescription = { name: string; type: string; label: string; lines?: number; copyable?: boolean; defaultValue?: string; required?: boolean; disabled?: boolean; size?: number; helperText?: string; }; export type ServiceConfig = { entity: Entity; table: keyof Database; displayName: string; createFields: FieldDescription[]; updateFields: FieldDescription[]; displayFields: FieldDescription[]; listColumns: GridColDef[]; }; export type Service = { getAllBots: (req: NextRequest) => Promise; getOneBot: (req: NextRequest) => Promise; sendMessage: (req: NextRequest) => Promise; receiveMessages: (req: NextRequest) => Promise; registerBot: (req: NextRequest) => Promise; resetBot: (req: NextRequest) => Promise; requestCode: (req: NextRequest) => Promise; unverifyBot: (req: NextRequest) => Promise; refreshBot: (req: NextRequest) => Promise; createBot: (req: NextRequest) => Promise; deleteBot: (req: NextRequest) => Promise; handleWebhook: (req: NextRequest) => Promise; };