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; }