import type { PromoFunder } from '@/lib/enums/promo-funder';
import type { OrderLineId, PromoId, UserId, VendorId } from '@/server/platform-seams/ids.js';

export type PromoEvent =
  | { kind: 'promo_applied'; promoCodeId: PromoId; userId: UserId }
  | {
      kind: 'promo_usage_recorded';
      promoCodeId: PromoId;
      purchaseId: OrderLineId;
      userId: UserId;
      vendorId: VendorId;
      discountAgorot: number;
      funder: PromoFunder;
      appliedToLines: OrderLineId[];
    }
  | { kind: 'promo_exhausted'; promoCodeId: PromoId; userId?: UserId };
