import numpy as np
def floatToConditionConversion(float: float):
    if float <= 0:
        return "(Factory New)"
    if float > 0 and float < 0.07:
        return "(Factory New)"
    if float > 0.07 and float < 0.15:
        return "(Minimal Wear)"
    if float > 0.15 and float < 0.38:
        return "(Field-Tested)"
    if float > 0.38 and float < 0.45:
        return "(Well-Worn)"
    if float > 0.45 and float < 1:
        return "(Battle-Scarred)"
    return None

def conditionToWearConversion(condition: list):
    cond_list = []
    for cond in condition:
        if cond == "Factory New":
            cond_list.append(0)
        if cond == "Minimal Wear":
            cond_list.append(1)
        if cond == "Field-Tested":
            cond_list.append(2)
        if cond == "Well-Worn":
            cond_list.append(3)
        if cond == "Battle-Scarred":
            cond_list.append(4)
    return cond_list

def singleConditionToWearConversion(condition: str):
    if condition == "Factory New":
        return 0
    if condition == "Minimal Wear":
        return 1
    if condition == "Field-Tested":
        return 2
    if condition == "Well-Worn":
        return 3
    if condition == "Battle-Scarred":
        return 4
    return None

def floatToConditionList(min_float: float, max_float: float):
    possible_conditions = set()

    for floaty in np.arange(min_float, max_float, 0.001):
        # print(floaty)
        if floaty < 0.07:
            possible_conditions.add("Factory New")
            continue
        if floaty < 0.15:
            possible_conditions.add("Minimal Wear")
            continue
        if floaty < 0.38:
            possible_conditions.add("Field-Tested")
            continue
        if floaty < 0.45:
            possible_conditions.add("Well-Worn")
            continue
        if floaty > 0.45:
            possible_conditions.add("Battle-Scarred")
            continue
    # print(possible_conditions)
    return possible_conditions

def floatToWearConversion(float: float):
    if float > 0 and float < 0.07:
        return 0
    if float > 0.07 and float < 0.15:
        return 1
    if float > 0.15 and float < 0.38:
        return 2
    if float > 0.38 and float < 0.45:
        return 3
    if float > 0.45 and float < 1:
        return 4
    return None


def typeToURLPart(type: str, weapon_name: str):
    # &category_730_Quality%5B%5D=tag_unusual&category_730_Quality%5B%5D=tag_unusual_strange
    # category_730_Quality%5B0%5D=tag_unusual
    if weapon_name == "tag_weapon_bayonet" or weapon_name.startswith(
        "tag_weapon_knife"
    ):
        if type == "stat_only":
            return "tag_unusual_strange"
        if type == "souvenir":
            return "tag_unusual_strange"
        if type == "non_stat_only":
            return "tag_unusual"
        if type == "stat_and_non_stat":
            return "tag_unusual&category_730_Quality%5B%5D=tag_unusual_strange"
        if type == "all":
            return "tag_unusual&category_730_Quality%5B%5D=tag_unusual_strange"

    else:
        if type == "stat_only":
            return "tag_strange"
        if type == "souvenir":
            return "tag_tournament"
        if type == "non_stat_only":
            return "tag_normal"
        if type == "stat_and_non_stat":
            return "tag_normal&category_730_Quality%5B%5D=tag_strange"
        if type == "all":
            return "tag_normal&category_730_Quality%5B%5D=tag_tournament&category_730_Quality%5B%5D=tag_strange"