@cfxlabsinc/b2b-services
    Preparing search index...
    type ApprovalRuleRow = {
        categories: string[];
        id: string;
        minAmountUsd: string | null;
        name: string;
        products: string[];
        status: "ACTIVE" | "DISABLED";
        steps: ApprovalRuleStepRow[];
    }
    Index
    categories: string[]
    id: string
    minAmountUsd: string | null

    Decimal USD string; the match is inclusive. Null means no floor.

    name: string
    products: string[]

    Product names; empty with no categories means every product.

    status: "ACTIVE" | "DISABLED"

    DISABLED is terminal: the row stays, dimmed, and offers no actions.