import { ResolverActions } from "../../utils/enums"; import { AttachmentDataProvider } from "./attachment-resolver.data.model"; import { BaseMetadata } from "./base-metadata.data.model"; import { RecorderAnnotation } from "./recorder-annotation.data.model"; import { ResolverConfig, ResolverResponse } from "./resolver.data.model"; import { Attachment } from "./attachment.model"; import { Transcription } from "./transcription.data.model"; import { User } from "./user.data.model"; export interface RecorderAnnotationDataProvider { get?: (request: GetRecorderResolverRequest) => Promise>>; save?: (request: SaveRecorderResolverRequest) => Promise>; delete?: (request: DeleteRecorderResolverRequest) => Promise>; config?: ResolverConfig; uploadChunks?: boolean; storage?: AttachmentDataProvider; } export interface GetRecorderResolverRequest { organizationId: string; recorderAnnotationIds?: string[]; documentIds?: string[]; } export interface SaveRecorderResolverRequest { recorderAnnotation: Record; event?: ResolverActions; metadata?: BaseMetadata; } export interface SaveRecorderResolverData { transcription?: Transcription; attachment?: Attachment | null; attachments?: Attachment[]; } export interface DeleteRecorderResolverRequest { recorderAnnotationId: string; metadata?: BaseMetadata; event?: ResolverActions; } export interface PartialRecorderAnnotation { annotationId: string; metadata?: BaseMetadata; from?: User; transcription?: Transcription; attachment?: Attachment | null; attachments?: Attachment[]; chunkUrls?: Record; recordingEditVersions?: Record; [key: string]: any; } export interface PartialRecorderAnnotationEditVersion { from?: User; attachment?: Attachment | null; attachments?: Attachment[]; transcription?: Transcription; } export interface PartialRecorderAnnotationResult { strippedData: Record | null; originalData: RecorderAnnotation | null; eventType?: ResolverActions; }