| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import { Column, CreateDateColumn, Entity, Index, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'
- export enum TaskType {
- SEND_MESSAGE = 'send_message',
- INVITE_TO_GROUP = 'invite_to_group'
- }
- export enum TaskStatus {
- PENDING = 'pending',
- SENDING = 'sending',
- QUEUING = 'queuing',
- PAUSED = 'paused',
- CANCELED = 'canceled',
- COMPLETED = 'completed'
- }
- @Entity()
- @Index('idx_task_status_delFlag_startedAt', ['status', 'delFlag', 'startedAt'])
- @Index('idx_task_userId_delFlag_createdAt', ['userId', 'delFlag', 'createdAt'])
- export class Task {
- @PrimaryGeneratedColumn()
- id: number
- @Column()
- name: string
- @Column()
- userId: number
- @Column({
- type: 'enum',
- enum: TaskType,
- default: TaskType.SEND_MESSAGE
- })
- type: TaskType
- /**
- * 任务配置
- * - SEND_MESSAGE: { message: string }
- * - INVITE_TO_GROUP: { inviteLink: string }
- */
- @Column({ type: 'simple-json', nullable: true })
- payload: Record<string, any> | null
- @Column({ default: 0 })
- processed: number
- @Column({ default: 0 })
- success: number
- @Column({ default: 0 })
- total: number
- @Column({
- type: 'enum',
- enum: TaskStatus,
- default: TaskStatus.PENDING
- })
- status: TaskStatus
- @Column({ default: false })
- cancelRequested: boolean
- @Column({ default: 5 })
- accountLimit: number
- @Column({ type: 'varchar', length: 32, default: '5-10' })
- intervalTime: string
- @Column({ default: 5 })
- threads: number
- @Column({ default: false })
- delFlag: boolean
- @Column({ type: 'datetime', precision: 6, default: null })
- startedAt: Date
- @CreateDateColumn()
- createdAt: Date
- @UpdateDateColumn()
- updatedAt: Date
- }
|