def classify_fields(field_names):
    """
    Gets a list of field_names and categorises them into different types for common processing
    For example: [some_field_min, some_field_max] would be classified as:
    {
        'min_field': some_field_min,
        'max_field': some_field_max,
    }
    :param field_names: list of fields
    :return: dictionary with classifications
    """
    field_classifications = dict()
    for field_name in field_names:
        if field_name.endswith('_type'):
            field_classifications.update({
                'type_field': field_name
            })
            index = field_name.rfind('_')
            field_classifications.update({
                'signal_parameter_name': field_name[:index],
            })
        elif field_name.endswith('_fixed'):
            field_classifications.update({
                'fixed_field': field_name
            })
        elif field_name.endswith('_min'):
            field_classifications.update({
                'min_field': field_name
            })
        elif field_name.endswith('_max'):
            field_classifications.update({
                'max_field': field_name
            })

    return field_classifications