UNPKG

@veltdev/types

Version:

Velt is an SDK to add collaborative features to your product within minutes. Example: Comments like Figma, Frame.io, Google docs or sheets, Recording like Loom, Huddles like Slack and much more.

54 lines (53 loc) 1.84 kB
import { ResolverActions } from "../../utils/enums"; import { PartialAttachment } from "./attachment-resolver.data.model"; import { BaseMetadata } from "./base-metadata.data.model"; import { CommentAnnotation } from "./comment-annotation.data.model"; import { ResolverConfig, ResolverResponse } from "./resolver.data.model"; export interface CommentAnnotationDataProvider { get: (request: GetCommentResolverRequest) => Promise<ResolverResponse<Record<string, PartialCommentAnnotation>>>; save: (request: SaveCommentResolverRequest) => Promise<ResolverResponse<undefined>>; delete: (request: DeleteCommentResolverRequest) => Promise<ResolverResponse<undefined>>; config?: ResolverConfig; } export interface GetCommentResolverRequest { organizationId: string; commentAnnotationIds?: string[]; documentIds?: string[]; folderId?: string; allDocuments?: boolean; } export interface DeleteCommentResolverRequest { commentAnnotationId: string; metadata?: BaseMetadata; event?: ResolverActions; } export interface SaveCommentResolverRequest { commentAnnotation: { [key: string]: PartialCommentAnnotation; }; event?: ResolverActions; metadata?: BaseMetadata; commentId?: string; } export interface PartialComment { commentId: string | number; commentHtml?: string; commentText?: string; attachments?: { [attachmentId: number]: PartialAttachment; }; } export interface PartialCommentAnnotationResult { strippedData: { [annotationId: string]: PartialCommentAnnotation; } | null; originalData: CommentAnnotation | null; eventType?: ResolverActions; } export interface PartialCommentAnnotation { annotationId: string; metadata?: BaseMetadata; comments: { [commentId: string]: PartialComment; }; }