import { Column, CreateDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from 'typeorm';
import { PesEmailTracking } from './pes-email-tracking.entity';

@Entity('pes_email_events')
export class PesEmailEvent {
  @PrimaryGeneratedColumn('uuid')
  id: string;

  @Column()
  type: 'OPEN' | 'CLICK';

  @Column({ nullable: true, name: 'ip_address' })
  ipAddress: string;

  @Column({ nullable: true, type: 'text', name: 'user_agent' })
  userAgent: string;

  @Column({ nullable: true, type: 'text', name: 'original_url' })
  originalUrl: string; // For click events

  @CreateDateColumn({ type: 'timestamp', name: 'event_time' })
  eventTime: Date;

  @ManyToOne(() => PesEmailTracking, tracking => tracking.events)
  @JoinColumn({ name: 'email_tracking_id' })
  emailTracking: PesEmailTracking;
}
