import { Column, Entity, Index, JoinColumn, ManyToOne, PrimaryColumn, } from 'typeorm'; import { Role } from './role.entity'; import { User } from './user.entity'; @Entity({ name: 'user_roles' }) @Index('idx_user_roles_user_id', ['userId']) @Index('idx_user_roles_role_id', ['roleId']) export class UserRole { @PrimaryColumn({ name: 'user_id', type: 'uuid' }) userId!: string; @PrimaryColumn({ name: 'role_id', type: 'uuid' }) roleId!: string; @Column({ name: 'assigned_at', type: 'timestamptz', default: () => 'CURRENT_TIMESTAMP' }) assignedAt!: Date; @Column({ name: 'assigned_by', type: 'uuid', nullable: true }) assignedBy!: string | null; @ManyToOne(() => User, { onDelete: 'CASCADE' }) @JoinColumn({ name: 'user_id' }) user!: User; @ManyToOne(() => Role, { onDelete: 'RESTRICT' }) @JoinColumn({ name: 'role_id' }) role!: Role; }