251123:2300 Update T1

This commit is contained in:
2025-11-24 08:15:15 +07:00
parent 23006898d9
commit 9360d78ea6
81 changed files with 4232 additions and 347 deletions
@@ -0,0 +1,56 @@
// File: src/common/entities/audit-log.entity.ts
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
ManyToOne,
JoinColumn,
} from 'typeorm';
import { User } from '../../modules/user/entities/user.entity';
@Entity('audit_logs')
export class AuditLog {
@PrimaryGeneratedColumn({ name: 'audit_id', type: 'bigint' })
auditId!: string;
@Column({ name: 'request_id', nullable: true })
requestId?: string;
// ✅ ต้องมีบรรทัดนี้ (TypeORM ต้องการเพื่อ Map Column)
@Column({ name: 'user_id', nullable: true })
userId?: number | null; // ✅ เพิ่ม | null เพื่อรองรับค่า null
@Column({ length: 100 })
action!: string;
@Column({
type: 'enum',
enum: ['INFO', 'WARN', 'ERROR', 'CRITICAL'],
default: 'INFO',
})
severity!: string;
@Column({ name: 'entity_type', length: 50, nullable: true })
entityType?: string;
@Column({ name: 'entity_id', length: 50, nullable: true })
entityId?: string;
@Column({ name: 'details_json', type: 'json', nullable: true })
detailsJson?: any;
@Column({ name: 'ip_address', length: 45, nullable: true })
ipAddress?: string;
@Column({ name: 'user_agent', length: 255, nullable: true })
userAgent?: string;
@CreateDateColumn({ name: 'created_at' })
createdAt!: Date;
// Relations
@ManyToOne(() => User)
@JoinColumn({ name: 'user_id' })
user?: User;
}