generation-task.model.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. export type GenerationTaskStatus = 'draft' | 'queued' | 'running' | 'waiting_external' | 'completed' | 'failed' | 'cancelled';
  2. export type GenerationTaskStepStatus = 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
  3. export interface GenerationTaskStep {
  4. id: string;
  5. label: string;
  6. status: GenerationTaskStepStatus;
  7. progress: number;
  8. errorMessage?: string;
  9. startedAt?: number;
  10. finishedAt?: number;
  11. retryable?: boolean;
  12. }
  13. export interface GenerationTaskCost {
  14. estimatedCredits: number;
  15. reservedCredits?: number;
  16. reservationId?: string;
  17. status: 'estimated' | 'reserved' | 'committed' | 'refunded' | 'free' | 'unknown';
  18. refundReason?: string;
  19. }
  20. export interface GenerationTask {
  21. id: string;
  22. title: string;
  23. pipelineId: string;
  24. operation: string;
  25. status: GenerationTaskStatus;
  26. progress: number;
  27. currentStepId: string;
  28. steps: GenerationTaskStep[];
  29. cost: GenerationTaskCost;
  30. createdAt: number;
  31. updatedAt: number;
  32. resultUrl?: string;
  33. errorMessage?: string;
  34. failureSuggestion?: string;
  35. retryable?: boolean;
  36. recoverable?: boolean;
  37. externalTaskIds?: Record<string, string>;
  38. snapshot?: any;
  39. }
  40. export interface LegacyTaskLike {
  41. id: string;
  42. keyword: string;
  43. status: string;
  44. step: string;
  45. progress: number;
  46. cost?: number;
  47. created_at: Date | string;
  48. updated_at: Date | string;
  49. result_url?: string;
  50. error_message?: string;
  51. original_video_title?: string;
  52. duration?: string;
  53. type?: string;
  54. estimatedCredits?: number;
  55. reservedCredits?: number;
  56. creditReservationId?: string;
  57. creditStatus?: GenerationTaskCost['status'];
  58. operation?: string;
  59. pipelineId?: string;
  60. generationStatus?: GenerationTaskStatus;
  61. externalTaskIds?: Record<string, string>;
  62. failureSuggestion?: string;
  63. retryable?: boolean;
  64. recoverable?: boolean;
  65. lastErrorAt?: string;
  66. retryCount?: number;
  67. steps?: GenerationTaskStep[];
  68. snapshot?: any;
  69. vgData?: any;
  70. }