Twilio now handles only the in-browser dial pad (Access Token + browser-Device outbound TwiML); Telnyx takes over SMS, inbound voicemail, the AI voice conversation loop, and staff-triggered outbound calls via TeXML. Adds TelnyxSettings model, Communication.provider discriminator, new comms/routes modules, and a real Telnyx Settings page. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
24 lines
1.0 KiB
TypeScript
24 lines
1.0 KiB
TypeScript
import * as z from 'zod';
|
|
import { CommunicationChannelSchema } from '../../enums/CommunicationChannel.schema';
|
|
import { CommunicationDirectionSchema } from '../../enums/CommunicationDirection.schema';
|
|
import { CommunicationStatusSchema } from '../../enums/CommunicationStatus.schema';
|
|
import { CommunicationProviderSchema } from '../../enums/CommunicationProvider.schema';
|
|
// prettier-ignore
|
|
export const CommunicationInputSchema = z.object({
|
|
id: z.number().int(),
|
|
patientId: z.number().int(),
|
|
userId: z.number().int().optional().nullable(),
|
|
channel: CommunicationChannelSchema,
|
|
direction: CommunicationDirectionSchema,
|
|
status: CommunicationStatusSchema,
|
|
provider: CommunicationProviderSchema,
|
|
body: z.string().optional().nullable(),
|
|
callDuration: z.number().int().optional().nullable(),
|
|
twilioSid: z.string().optional().nullable(),
|
|
createdAt: z.date(),
|
|
patient: z.unknown(),
|
|
user: z.unknown().optional().nullable()
|
|
}).strict();
|
|
|
|
export type CommunicationInputType = z.infer<typeof CommunicationInputSchema>;
|