/** * SmartyMeet Dev03 API REST * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * The version of the OpenAPI document: 1.0.1 * Contact: developer@smartymeet.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import type { CallAttributesSchemaRecording } from './CallAttributesSchemaRecording'; import type { CallAttributesSchemaDelivery } from './CallAttributesSchemaDelivery'; import type { CallAttributesSchemaSpeakerStatsInner } from './CallAttributesSchemaSpeakerStatsInner'; import type { CallAttributesSchemaTranscriptSegmentsInner } from './CallAttributesSchemaTranscriptSegmentsInner'; import type { ResourceTimestampsSchema } from './ResourceTimestampsSchema'; /** * Cross-protocol call attributes. Mirror of chat with voice- * specific extensions: lifecycle covers provider phases (queued * -> ringing -> in-progress -> completed) plus the operator * review window (draft -> scheduled -> queued). aiMode toggles * whether the AI agent is the active speaker, a silent observer, * or fully off. transcript + summary are multilingual dicts * mirroring email/chat body shape; the call AI translate Step * Function fans them across tenant locales. * @export * @interface CallAttributesSchema */ export interface CallAttributesSchema { /** * Call direction relative to boe (inbound = caller dialed boe; outbound = boe placed the call). * @type {CallAttributesSchemaDirectionEnum} * @memberof CallAttributesSchema */ direction?: CallAttributesSchemaDirectionEnum; /** * Wire protocol. Phone is PSTN via Twilio; WebRTC reserves the slot for the future recruiter Voice SDK in the admin web app. * @type {CallAttributesSchemaProtocolEnum} * @memberof CallAttributesSchema */ protocol?: CallAttributesSchemaProtocolEnum; /** * Lifecycle state - one value per FE chip nav bucket * (email-style; status IS the folder, no separate folder * field). The granular Twilio status (queued / ringing / * in-progress / no-answer / busy / voicemail / abandoned / * failed / Twilio's `canceled`) is preserved on * `meta.providerStatus` for retry logic and analytics. * - `draft` - operator editing, no Schedule armed * - `scheduled` - Schedule armed for fireAt * - `active` - live (Twilio queued / ringing / in-progress) * - `incoming` - completed inbound call * - `outgoing` - completed outbound call * - `missed` - any failure terminal (no-answer / busy / failed / * voicemail / abandoned / Twilio's mid-call canceled) * - `cancelled` - operator-initiated DELETE before dial * - `archived` - terminal soft-delete * @type {CallAttributesSchemaStatusEnum} * @memberof CallAttributesSchema */ status?: CallAttributesSchemaStatusEnum; /** * Caller's protocol-native handle (E.164 phone for PSTN, AAD object id for WebRTC). * @type {string} * @memberof CallAttributesSchema */ fromIdentifier?: string; /** * Display name of the caller at write time. Denormalised from the resolved principal. * @type {string} * @memberof CallAttributesSchema */ fromName?: string; /** * Principal type of the caller. * @type {CallAttributesSchemaFromTypeEnum} * @memberof CallAttributesSchema */ fromType?: CallAttributesSchemaFromTypeEnum; /** * Callee's protocol-native handle. * @type {string} * @memberof CallAttributesSchema */ toIdentifier?: string; /** * Display name of the callee at write time. * @type {string} * @memberof CallAttributesSchema */ toName?: string; /** * Principal type of the callee. * @type {CallAttributesSchemaToTypeEnum} * @memberof CallAttributesSchema */ toType?: CallAttributesSchemaToTypeEnum; /** * Multilingual transcript keyed by BCP 47 locale (e.g. {`en-US`: `Hi`, `pl-PL`: `Cześć`}). Source locale is captured first; the AI translate Step Function fills in the rest of the tenant's active locales. * @type {{ [key: string]: string; }} * @memberof CallAttributesSchema */ transcript?: { [key: string]: string; }; /** * Multilingual post-call summary keyed by BCP 47 locale. LLM-generated after call ends. * @type {{ [key: string]: string; }} * @memberof CallAttributesSchema */ summary?: { [key: string]: string; }; /** * Per-criterion scoring extracted from the transcript when the call is tied to a job (relationships.job). Map of criterion key -> {score, evidence, confidence}. * @type {object} * @memberof CallAttributesSchema */ criteriaScoring?: object; /** * ISO 8601 timestamp when the call started (ringing began). Set on outbound dial or inbound webhook arrival. * @type {string} * @memberof CallAttributesSchema */ startedAt?: string; /** * ISO 8601 timestamp when the call connected (recipient picked up). * @type {string} * @memberof CallAttributesSchema */ answeredAt?: string; /** * ISO 8601 timestamp when the call ended (terminal status reached). * @type {string} * @memberof CallAttributesSchema */ endedAt?: string; /** * Call duration in seconds (endedAt - answeredAt). * @type {number} * @memberof CallAttributesSchema */ durationSec?: number; /** * ISO 8601 timestamp at which the Schedule armed for this call will fire and place the outbound dial. Operators can PATCH to reschedule; the eventbus PATCHes the underlying Schedule row in lockstep. Mirror of email/chat scheduledFireAt. * @type {string} * @memberof CallAttributesSchema */ scheduledFireAt?: string; /** * FK denormalisation of relationships.schedule for cheap read paths. * @type {string} * @memberof CallAttributesSchema */ scheduleId?: string; /** * Twilio conference id when the call is a multi-party (3-way) conference. Null for 1:1. * @type {string} * @memberof CallAttributesSchema */ conferenceSid?: string; /** * True when the call is a multi-party conference (recruiter joining via Voice SDK + candidate + boe AI). False for 1:1. * @type {boolean} * @memberof CallAttributesSchema */ isConference?: boolean; /** * How the AI agent participates. `active` = AI speaks (default for boe ↔ candidate). `observer` = AI listens, transcribes, surfaces real-time suggestions to the recruiter UI but does not speak. `silent` = recording + post-call analysis only, no AI in the call. * @type {CallAttributesSchemaAiModeEnum} * @memberof CallAttributesSchema */ aiMode?: CallAttributesSchemaAiModeEnum; /** * List of topic keys the AI agent should cover during the call (e.g. ['salary', 'experience', 'languagesSpoken']). Operator-editable in the review window before fire. * @type {Array} * @memberof CallAttributesSchema */ plannedTopics?: Array; /** * Operator-editable agent instructions used as the OpenAI Realtime session's system prompt at fire time. Mirror of email body in the operator review window: edit before fire, the dialed call uses the latest version. Wins over `boeRole`/`boeContext` when both are set. * @type {string} * @memberof CallAttributesSchema */ systemPrompt?: string; /** * Prompt template selector. Picks `service/call/container/outbound/prompt/.md` and renders it with `boeContext` placeholders at dial time. `systemPrompt` overrides if also set. Mutually exclusive with `systemPrompt` in effect. * @type {CallAttributesSchemaBoeRoleEnum} * @memberof CallAttributesSchema */ boeRole?: CallAttributesSchemaBoeRoleEnum; /** * Placeholder map for the `boeRole` prompt template. Keys depend on the role: for `interviewer` typically `candidateName`, `roleName`, `language`, `applicationUnits`, `employmentOptions`, `nextStepDescription`; for `sales` typically `prospectName`, `prospectCompany`, `language`, `leadSource`. Missing keys render as `not provided`. * @type {{ [key: string]: any; }} * @memberof CallAttributesSchema */ boeContext?: { [key: string]: any; }; /** * * @type {CallAttributesSchemaRecording} * @memberof CallAttributesSchema */ recording?: CallAttributesSchemaRecording; /** * BCP 47 locale of the call (the locale key initially populated in transcript). Detected from the caller's settings or call audio. * @type {string} * @memberof CallAttributesSchema */ languageCode?: string; /** * Unique short identifier (provider/lookup correlation). * @type {string} * @memberof CallAttributesSchema */ shortCode?: string; /** * Structured transcript with timing. Each segment is one turn captured live by the Realtime API. Single shape (NOT translated); text is in `languageCode`. Drives the audio player's clickable speaker timeline. * @type {Array} * @memberof CallAttributesSchema */ transcriptSegments?: Array; /** * Per-speaker talk statistics computed once on call finalization. Used by the timeline UI to show talk-time bars. * @type {Array} * @memberof CallAttributesSchema */ speakerStats?: Array; /** * AI-generated fact bullets per locale, distilled from the transcript. * Keyed by BCP-47 locale (e.g. `en-US`, `pl-PL`); values are arrays of * strings. The source language (matches `languageCode`) is always * present; tenant target locales are added by the AI translate step. * FE selects the locale to render (no auto-flatten on read). Same shape * as `summary`/`transcript` - one object, NOT separate columns. * @type {{ [key: string]: Array; }} * @memberof CallAttributesSchema */ keyNotes?: { [key: string]: Array; }; /** * Stable facet keys (e.g. `salary`, `experience`, `languagesSpoken`) covered in the call. FE renders via shared `callTopics` dictionary for human-readable labels. * @type {Array} * @memberof CallAttributesSchema */ topicsDiscussed?: Array; /** * AI-derived sentiment of the conversation as a whole. * @type {CallAttributesSchemaSentimentEnum} * @memberof CallAttributesSchema */ sentiment?: CallAttributesSchemaSentimentEnum; /** * * @type {CallAttributesSchemaDelivery} * @memberof CallAttributesSchema */ delivery?: CallAttributesSchemaDelivery; /** * ISO 8601 timestamp when the AI summary pipeline (keyNotes + topicsDiscussed + sentiment + summary) finalized. Null until the post-call AI Step Function completes. * @type {string} * @memberof CallAttributesSchema */ summaryGeneratedAt?: string; /** * Server-derived: true when status==`active`. Drives the live indicator + polling decision in the UI. * @type {boolean} * @memberof CallAttributesSchema */ isLive?: boolean; /** * Server-derived: true when recording.mixedMp3Url is present. Lets the list page show a play icon without sending the heavy `recording` block. * @type {boolean} * @memberof CallAttributesSchema */ hasRecording?: boolean; /** * Server-derived: true when transcriptSegments has any entries OR transcript dict has any locale keys. Lets the list page show a transcript icon without sending the heavy `transcript`/`transcriptSegments` payload. * @type {boolean} * @memberof CallAttributesSchema */ hasTranscript?: boolean; /** * * @type {ResourceTimestampsSchema} * @memberof CallAttributesSchema */ timestamps?: ResourceTimestampsSchema; } /** * @export */ export declare const CallAttributesSchemaDirectionEnum: { readonly Inbound: "inbound"; readonly Outbound: "outbound"; }; export type CallAttributesSchemaDirectionEnum = typeof CallAttributesSchemaDirectionEnum[keyof typeof CallAttributesSchemaDirectionEnum]; /** * @export */ export declare const CallAttributesSchemaProtocolEnum: { readonly Phone: "phone"; readonly Webrtc: "webrtc"; }; export type CallAttributesSchemaProtocolEnum = typeof CallAttributesSchemaProtocolEnum[keyof typeof CallAttributesSchemaProtocolEnum]; /** * @export */ export declare const CallAttributesSchemaStatusEnum: { readonly Draft: "draft"; readonly Scheduled: "scheduled"; readonly Active: "active"; readonly Incoming: "incoming"; readonly Outgoing: "outgoing"; readonly Missed: "missed"; readonly Cancelled: "cancelled"; readonly Archived: "archived"; }; export type CallAttributesSchemaStatusEnum = typeof CallAttributesSchemaStatusEnum[keyof typeof CallAttributesSchemaStatusEnum]; /** * @export */ export declare const CallAttributesSchemaFromTypeEnum: { readonly User: "user"; readonly Candidate: "candidate"; readonly Talent: "talent"; readonly Guest: "guest"; }; export type CallAttributesSchemaFromTypeEnum = typeof CallAttributesSchemaFromTypeEnum[keyof typeof CallAttributesSchemaFromTypeEnum]; /** * @export */ export declare const CallAttributesSchemaToTypeEnum: { readonly User: "user"; readonly Candidate: "candidate"; readonly Talent: "talent"; readonly Guest: "guest"; }; export type CallAttributesSchemaToTypeEnum = typeof CallAttributesSchemaToTypeEnum[keyof typeof CallAttributesSchemaToTypeEnum]; /** * @export */ export declare const CallAttributesSchemaAiModeEnum: { readonly Active: "active"; readonly Observer: "observer"; readonly Silent: "silent"; }; export type CallAttributesSchemaAiModeEnum = typeof CallAttributesSchemaAiModeEnum[keyof typeof CallAttributesSchemaAiModeEnum]; /** * @export */ export declare const CallAttributesSchemaBoeRoleEnum: { readonly Sales: "sales"; readonly Interviewer: "interviewer"; }; export type CallAttributesSchemaBoeRoleEnum = typeof CallAttributesSchemaBoeRoleEnum[keyof typeof CallAttributesSchemaBoeRoleEnum]; /** * @export */ export declare const CallAttributesSchemaSentimentEnum: { readonly Positive: "positive"; readonly Neutral: "neutral"; readonly Negative: "negative"; readonly Mixed: "mixed"; }; export type CallAttributesSchemaSentimentEnum = typeof CallAttributesSchemaSentimentEnum[keyof typeof CallAttributesSchemaSentimentEnum]; /** * Check if a given object implements the CallAttributesSchema interface. */ export declare function instanceOfCallAttributesSchema(value: object): value is CallAttributesSchema; export declare function CallAttributesSchemaFromJSON(json: any): CallAttributesSchema; export declare function CallAttributesSchemaFromJSONTyped(json: any, ignoreDiscriminator: boolean): CallAttributesSchema; export declare function CallAttributesSchemaToJSON(json: any): CallAttributesSchema; export declare function CallAttributesSchemaToJSONTyped(value?: CallAttributesSchema | null, ignoreDiscriminator?: boolean): any; //# sourceMappingURL=CallAttributesSchema.d.ts.map