|
@@ -0,0 +1,65 @@
|
|
|
|
|
+import { Entity, Column, CreateDateColumn, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'
|
|
|
|
|
+
|
|
|
|
|
+export enum GroupTaskStatus {
|
|
|
|
|
+ PENDING = 'pending',
|
|
|
|
|
+ SENDING = 'sending',
|
|
|
|
|
+ QUEUING = 'queuing',
|
|
|
|
|
+ PAUSED = 'paused',
|
|
|
|
|
+ CANCELED = 'canceled',
|
|
|
|
|
+ COMPLETED = 'completed'
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+@Entity()
|
|
|
|
|
+export class GroupTask {
|
|
|
|
|
+ @PrimaryGeneratedColumn()
|
|
|
|
|
+ id: number
|
|
|
|
|
+
|
|
|
|
|
+ @Column()
|
|
|
|
|
+ name: string
|
|
|
|
|
+
|
|
|
|
|
+ @Column()
|
|
|
|
|
+ userId: number
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ default: 0 })
|
|
|
|
|
+ total: number
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ default: 0 })
|
|
|
|
|
+ invited: number
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ default: 0 })
|
|
|
|
|
+ successCount: number
|
|
|
|
|
+
|
|
|
|
|
+ @Column({
|
|
|
|
|
+ type: 'enum',
|
|
|
|
|
+ enum: GroupTaskStatus,
|
|
|
|
|
+ default: GroupTaskStatus.PENDING
|
|
|
|
|
+ })
|
|
|
|
|
+ status: GroupTaskStatus
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ default: false })
|
|
|
|
|
+ cancelRequested: boolean
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ nullable: false })
|
|
|
|
|
+ inviteLink: string
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ default: 5 })
|
|
|
|
|
+ inviteLimit: number
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ default: 5 })
|
|
|
|
|
+ inviteInterval: number
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ default: 5 })
|
|
|
|
|
+ concurrentCount: number
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ default: false })
|
|
|
|
|
+ delFlag: boolean
|
|
|
|
|
+
|
|
|
|
|
+ @Column({ type: 'datetime', precision: 6, default: null })
|
|
|
|
|
+ startedAt: Date
|
|
|
|
|
+
|
|
|
|
|
+ @CreateDateColumn()
|
|
|
|
|
+ createdAt: Date
|
|
|
|
|
+
|
|
|
|
|
+ @UpdateDateColumn()
|
|
|
|
|
+ updatedAt: Date
|
|
|
|
|
+}
|