import z from 'zod'; import { serviceRequest, serviceResponse, } from '../interfaces/common'; export enum TaskTypes { ImportSource = 'Import Source', StartImportDocument = 'Start Import Document', ImportDocumentTranscriptFromYouTube = 'Import Document Transcript From YouTube', CreateDocumentSnippets = 'Create Document Snippets', ImportDocumentViewsFromYouTube = 'Import Document Views From YouTube', ImportDocumentAudio = 'Import Document Audio', ImportDocumentWebPage = 'Import Document Web Page', ImportUnstructuredDocument = 'Import Unstructured Document', StartImportDocumentTranscript = 'Start Import Document Transcript', FinishImportDocumentTranscript = 'Finish Import Document Transcript', FinishImportDocument = 'Finish Import Document', } export interface TaskService { createImportSource(request: CreateImportSourceTaskRequest): Promise; createImportDocument(request: CreateImportDocumentTaskRequest): Promise; createUpdateDocument(request: CreateUpdateDocumentTaskRequest): Promise; } /** ****************************************************************************** * Create Import Source ******************************************************************************* */ export const createImportSourceTaskParams = z.object({ taskId: z.string().optional(), syncId: z.string().optional(), sourceId: z.string().optional(), runAt: z.number().nullable().optional(), }); export const createImportSourceTaskRequest = serviceRequest.merge( z.object({ params: createImportSourceTaskParams, }), ); export const createImportSourceTaskResponse = serviceResponse.merge( z.object({ taskId: z.string().optional(), success: z.boolean().optional(), }), ); export type CreateImportSourceTaskParams = z.infer; export type CreateImportSourceTaskRequest = z.infer; export type CreateImportSourceTaskResponse = z.infer; /** ****************************************************************************** * Create Import Document ******************************************************************************* */ export const createImportDocumentTaskParams = z.object({ taskId: z.string().optional(), documentId: z.string(), syncId: z.string(), useReplicate: z.boolean(), runAt: z.number().optional().nullable(), }); export const createImportDocumentTaskRequest = serviceRequest.merge( z.object({ params: createImportDocumentTaskParams, }), ); export const createImportDocumentTaskResponse = serviceResponse.merge( z.object({ taskId: z.string().optional(), success: z.boolean().optional(), }), ); export type CreateImportDocumentTaskParams = z.infer; export type CreateImportDocumentTaskRequest = z.infer; export type CreateImportDocumentTaskResponse = z.infer; /** ****************************************************************************** * Create Update Document ******************************************************************************* */ export const createUpdateDocumentTaskParams = z.object({ taskId: z.string(), documentId: z.string(), syncId: z.string(), runAt: z.number().nullable(), }); export const createUpdateDocumentTaskRequest = serviceRequest.merge( z.object({ params: createUpdateDocumentTaskParams, }), ); export const createUpdateDocumentTaskResponse = serviceResponse.merge( z.object({ taskId: z.string().optional(), success: z.boolean().optional(), }), ); export type CreateUpdateDocumentTaskParams = z.infer; export type CreateUpdateDocumentTaskRequest = z.infer; export type CreateUpdateDocumentTaskResponse = z.infer;