87 lines
2.2 KiB
TypeScript
87 lines
2.2 KiB
TypeScript
declare class VideoScheduleQueueService {
|
|
private queue;
|
|
private worker;
|
|
constructor();
|
|
/**
|
|
* Start the worker to process scheduled publish/unpublish jobs
|
|
*/
|
|
startWorker(): void;
|
|
/**
|
|
* Schedule a video to be published at a specific time
|
|
*/
|
|
schedulePublish(videoId: number, publishAt: Date, scheduledByUserId: string): Promise<{
|
|
jobId: string;
|
|
scheduledFor: Date;
|
|
}>;
|
|
/**
|
|
* Schedule a video to be unpublished at a specific time
|
|
*/
|
|
scheduleUnpublish(videoId: number, unpublishAt: Date, scheduledByUserId: string): Promise<{
|
|
jobId: string;
|
|
scheduledFor: Date;
|
|
}>;
|
|
/**
|
|
* Cancel a scheduled publish or unpublish
|
|
*/
|
|
cancelSchedule(videoId: number, action: 'publish' | 'unpublish'): Promise<void>;
|
|
/**
|
|
* Get upcoming scheduled publish/unpublish operations
|
|
*/
|
|
getUpcomingSchedules(limit?: number): Promise<Array<{
|
|
jobId: string;
|
|
videoId: number;
|
|
videoTitle: string | null;
|
|
action: 'publish' | 'unpublish';
|
|
scheduledFor: Date;
|
|
status: string;
|
|
}>>;
|
|
/**
|
|
* Get schedule history for a video
|
|
*/
|
|
getScheduleHistory(videoId: number, limit?: number): Promise<({
|
|
scheduledBy: {
|
|
id: string;
|
|
email: string;
|
|
name: string | null;
|
|
};
|
|
} & {
|
|
status: string;
|
|
error: string | null;
|
|
id: number;
|
|
createdAt: Date;
|
|
videoId: number;
|
|
action: string;
|
|
scheduledFor: Date;
|
|
executedAt: Date | null;
|
|
scheduledByUserId: string;
|
|
})[]>;
|
|
/**
|
|
* Get queue stats
|
|
*/
|
|
getStats(): Promise<{
|
|
waiting: number;
|
|
active: number;
|
|
delayed: number;
|
|
completed: number;
|
|
failed: number;
|
|
}>;
|
|
/**
|
|
* Pause the queue
|
|
*/
|
|
pause(): Promise<void>;
|
|
/**
|
|
* Resume the queue
|
|
*/
|
|
resume(): Promise<void>;
|
|
/**
|
|
* Clean up old completed and failed jobs
|
|
*/
|
|
cleanup(): Promise<number>;
|
|
/**
|
|
* Close queue and worker
|
|
*/
|
|
close(): Promise<void>;
|
|
}
|
|
export declare const videoScheduleQueueService: VideoScheduleQueueService;
|
|
export {};
|
|
//# sourceMappingURL=video-schedule-queue.service.d.ts.map
|