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

export type PromoEffect =
  | { kind: 'record-usage'; promoCodeId: PromoId; userId: UserId }
  | { kind: 'release-usage'; promoCodeId: PromoId; userId?: UserId }
  | {
      kind: 'insert-redemption';
      promoCodeId: PromoId;
      purchaseId: OrderLineId;
      userId: UserId;
      vendorId: VendorId;
      discountAgorot: number;
      funder: PromoFunder;
      appliedToLines: OrderLineId[];
    };
