@cfxlabsinc/b2b-services
    Preparing search index...
    AdminProductQuote: Omit<
        SelectProductQuote,
        "id"
        | "customerId"
        | "identityId"
        | "organizationId"
        | "productId",
    > & {
        customerId: string;
        id: string;
        identityId: string | null;
        organizationId: string | null;
        productName: ProductName;
        routeId: string;
    }

    product_quote row projected for admin consumers. Internal numeric ids are dropped in favour of the joined external ids. The route's external_id is exposed as routeId (joined through product_route_version → product_route) — the audit row pins to the version row, but admins reference routes by their identity-row external_id. productName comes from the joined product.external_id since the row's productId is an internal FK. The four *VersionId columns stay numeric — they're internal version-row PKs that the admin dashboard renders as deep links into the version-history table; admin-only surface, not part of any public API.