import {
    Entity,
    Index,
    ManyToOne,
    PrimaryGeneratedColumn,
    Column,
    CreateDateColumn,
  } from 'typeorm';
  import { Role } from './role.entity';
  import { Permission } from './permission.entity';

  @Entity({ name: 'role_permissions' })
  @Index(['roleId', 'permissionId'], { unique: true })
  export class RolePermission {
    @PrimaryGeneratedColumn('uuid')
    id!: string;

    @Column({ type: 'varchar', name: 'role_id' })
    roleId!: string;

    @Column({ type: 'varchar', name: 'permission_id' })
    permissionId!: string;

    @ManyToOne(() => Role, (r) => r.rolePermissions, { onDelete: 'CASCADE' })
    role!: Role;

    @ManyToOne(() => Permission, { onDelete: 'CASCADE' })
    permission!: Permission;

    @CreateDateColumn()
    createdAt!: Date;
  }
  