/**
 * Club domain effects — discriminated union.
 *
 * Pure module: no imports from @/server/db, do-client, outbox-producer, payments, fetch.
 */

export type CreateMembershipEffect = {
  kind: 'create-membership';
  userId: string;
  vendorId: string;
  joinedViaOrderLineId: string;
};

export type ReactivateMembershipEffect = {
  kind: 'reactivate-membership';
  membershipId: string;
};

export type NoopMembershipEffect = {
  kind: 'noop-membership';
  membershipId: string;
};

export type ClubEffect = CreateMembershipEffect | ReactivateMembershipEffect | NoopMembershipEffect;
