@cfxlabsinc/b2b-services
    Preparing search index...

    Answers "can this entity use this product, and if not, why not" with the reads ProductQuoteService.estimate() makes, gate by gate, and never writes: no audit row, no usage read, no cache fill.

    Index
    instance: (...args: []) => ProductEligibilityService = ...

    The process default: built from each dependency's own instance().

    • request carries the caller's criteria exactly as search() takes them, so the trace explains the same resolution routes reports.

      Parameters

      • __namedParameters: {
            amount?: EligibilityAmount | null;
            bankId?: string;
            customerId: string;
            decimalPlaces?: number;
            entityId: string;
            entityType: NonNullable<"IDENTITY" | "ORGANIZATION" | undefined>;
            request: RouteSearchRequest;
        }
        • Optionalamount?: EligibilityAmount | null

          Checks the picked route's quote math, as resolve() does.

        • OptionalbankId?: string

          Narrows the pick to one bank's routes, as resolve() does.

        • customerId: string
        • OptionaldecimalPlaces?: number
        • entityId: string
        • entityType: NonNullable<"IDENTITY" | "ORGANIZATION" | undefined>
        • request: RouteSearchRequest

      Returns Promise<
          {
              ok: true;
              value: { routes: ResolvedRoute[]; trace: EligibilityTrace };
          },
      >