import-task.entity.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import {
  2. Entity,
  3. Column,
  4. PrimaryGeneratedColumn,
  5. CreateDateColumn,
  6. UpdateDateColumn,
  7. } from 'typeorm';
  8. @Entity()
  9. export class ImportTask {
  10. @PrimaryGeneratedColumn('uuid')
  11. id: string;
  12. @Column()
  13. sourcePath: string;
  14. @Column({ nullable: true })
  15. targetGroupId: string; // If null, creates new group
  16. @Column({ nullable: true })
  17. targetGroupName: string; // Used if creating new group
  18. @Column()
  19. userId: string;
  20. @Column({ nullable: true })
  21. tenantId: string;
  22. @Column({ nullable: true })
  23. scheduledAt: Date;
  24. @Column({ default: 'PENDING' })
  25. status: 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED';
  26. @Column({ type: 'text', nullable: true })
  27. logs: string;
  28. @Column({ nullable: true })
  29. embeddingModelId: string;
  30. @Column({ nullable: true, default: 500 })
  31. chunkSize: number;
  32. @Column({ nullable: true, default: 50 })
  33. chunkOverlap: number;
  34. @Column({ nullable: true, default: 'fast' })
  35. mode: string;
  36. /** When true, sub-directories become sub-categories mirroring the folder hierarchy */
  37. @Column({ default: false })
  38. useHierarchy: boolean;
  39. @CreateDateColumn()
  40. createdAt: Date;
  41. @UpdateDateColumn()
  42. updatedAt: Date;
  43. }