import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, Index } from 'typeorm'; @Entity({ name: 'referral_codes', schema: 'public' }) export class ReferralCode { @PrimaryGeneratedColumn('uuid') id!: string; // FK to public.tenants.id — one code per tenant @Column({ name: 'tenant_id', type: 'varchar', unique: true }) tenantId!: string; // The admin user who owns this code @Column({ name: 'user_id', type: 'varchar' }) userId!: string; // e.g. "IT0-ACM-X9K2" @Column({ type: 'varchar', length: 20, unique: true }) @Index() code!: string; @Column({ name: 'click_count', type: 'int', default: 0 }) clickCount!: number; @CreateDateColumn({ name: 'created_at', type: 'timestamptz' }) createdAt!: Date; @UpdateDateColumn({ name: 'updated_at', type: 'timestamptz' }) updatedAt!: Date; }