import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn } from 'typeorm'; import { Permission } from './role.schema'; @Entity({ name: 'role' }) export class Role { @PrimaryGeneratedColumn() id!: number; @Column({ type: 'varchar', length: 50, unique: true }) name!: string; @Column({ type: 'text', nullable: true }) description!: string | null; @Column({ type: 'simple-array', nullable: false }) permissions: Permission[] = []; @CreateDateColumn({ name: 'created_at', type: 'timestamp' }) createdAt!: Date; @UpdateDateColumn({ name: 'updated_at', type: 'timestamp' }) updatedAt!: Date; constructor(partial?: Partial) { Object.assign(this, partial); if (!this.permissions) { this.permissions = []; } } }