def METHOD_NAME(item: PrimalItem,
                            has_durability: bool = False) -> Tuple[Optional[CraftingData], Optional[RepairData]]:
    recipe = item.get('BaseCraftingResourceRequirements', 0, None)
    if not recipe:
        return (None, None)
    # Crafted item number
    if item.bCraftDontActuallyGiveItem[0]:
        product_count: Union[int, IntProperty] = 0
    elif item.CraftingGivesItemQuantityOverride[0] >= 1:
        product_count = item.CraftingGivesItemQuantityOverride[0]
    else:
        product_count = item.CraftingGiveItemCount[0] * item.ItemQuantity[0]
    crafting = CraftingData(
        xp=item.BaseCraftingXP[0],
        time=item.BlueprintTimeToCraft[0],
        levelReq=item.CraftingMinLevelRequirement[0],
        productCount=int(product_count),
        skillQualityMult=MinMaxRange(min=item.CraftingSkillQualityMultiplierMin[0],
                                     max=item.CraftingSkillQualityMultiplierMax[0]),
        recipe=list(convert_recipe_entries(recipe.values)),
    )
    # Do not export crafting info if recipe consists only of nulls.
    if not crafting.recipe:
        return (None, None)
    # Durability repair info
    repair = None
    if item.bAllowRepair[0] and has_durability:
        repair = RepairData(
            xp=item.BaseRepairingXP[0],
            time=item.TimeForFullRepair[0],
            recipe=[],
        )
        if item.bOverrideRepairingRequirements[0]:
            recipe = item.get('OverrideRepairingRequirements', 0, None)
            if not recipe or not recipe.values:
                # Override to no ingredients, skip repair.
                repair = None
            else:
                # Convert the repair requirements list.
                repair.recipe = list(convert_recipe_entries(recipe.values))
                # Do not export repair info if the overrides lead to no valid ingredients
                if not repair.recipe:
                    repair = None
        else:
            # Copy crafting ingredients and scale their quantities by the repair multiplier.
            qty_mult = item.RepairResourceRequirementMultiplier[0]
            if qty_mult != 1.0:
                for ingredient in crafting.recipe:
                    ingredient_copy = ingredient.copy()
                    ingredient_copy.qty = clean_float(ingredient_copy.qty * qty_mult)
                    repair.recipe.append(ingredient_copy)
    return (crafting, repair)