eduverse-backend / src /modules /backup /entities /backup-record.entity.ts
amirhamdi's picture
all sprint 4 dev b endpoints works fine
f5957a1
Raw
History Blame Contribute Delete
1.28 kB
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
ManyToOne,
JoinColumn,
} from 'typeorm';
import { User } from '../../auth/entities/user.entity';
export enum BackupType {
MANUAL = 'manual',
SCHEDULED = 'scheduled',
}
export enum BackupStatus {
PENDING = 'pending',
IN_PROGRESS = 'in_progress',
COMPLETED = 'completed',
FAILED = 'failed',
}
@Entity('backup_records')
export class BackupRecord {
@PrimaryGeneratedColumn({ type: 'bigint', unsigned: true })
id: number;
@Column({ name: 'file_name', type: 'varchar', length: 255 })
fileName: string;
@Column({ name: 'file_size_bytes', type: 'bigint', unsigned: true, default: 0 })
fileSizeBytes: number;
@Column({
type: 'enum',
enum: BackupType,
default: BackupType.MANUAL,
})
type: BackupType;
@Column({
type: 'enum',
enum: BackupStatus,
default: BackupStatus.PENDING,
})
status: BackupStatus;
@Column({ name: 'created_by', type: 'bigint', unsigned: true, nullable: true })
createdBy: number;
@CreateDateColumn({ name: 'created_at' })
createdAt: Date;
@Column({ name: 'completed_at', type: 'timestamp', nullable: true })
completedAt: Date;
@ManyToOne(() => User)
@JoinColumn({ name: 'created_by' })
creator: User;
}