import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
  ManyToOne,
  JoinColumn,
  Unique,
} from 'typeorm';
import { Role } from '../../role/entities/role.entity';
import { NotificationType } from '../enums/notification-type.enum';

@Entity('notification_configs')
@Unique(['event_type', 'role_id']) // prevent duplicate rows
export class NotificationConfig {

  @PrimaryGeneratedColumn()
  id: number;
  @Column({
    type: 'enum',
    enum: NotificationType,
  })
  event_type: NotificationType;

 
  @Column()
  role_id: number;


  @Column({ nullable: true })
  description: string;

  @Column({ default: true })
  is_active: boolean;

  @CreateDateColumn()
  created_at: Date;

  // Relation to Role — loads role name automatically
  // eager: true means no need to manually join
  @ManyToOne(() => Role, { eager: true, onDelete: 'CASCADE' })
  @JoinColumn({ name: 'role_id' })
  role: Role;
}