import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
  Index,
} from 'typeorm';

/**
 * De-duplication + audit trail for Stripe webhook events.
 * Connection: scheme_dbs. One row per unique Stripe event.id we've processed.
 *
 * Add to BillingModule's TypeOrmModule.forFeature([...], 'scheme_dbs') if you
 * want the repository, or just use raw dataSource.query() as shown in the
 * hardening guide (no repo needed).
 */
@Entity('stripe_events')
@Index(['event_id'], { unique: true })
export class StripeEvent {
  @PrimaryGeneratedColumn()
  id: number;

  /** Stripe's event id, e.g. evt_1P_xxx — the dedup key. */
  @Column({ type: 'varchar', length: 255 })
  event_id: string;

  @Column({ type: 'varchar', length: 120 })
  type: string;

  @CreateDateColumn()
  created_at: Date;
}
