"""cellpointapi.

This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
"""

# ruff: noqa: E501

class RefundType(object):
    """Implementation of the 'RefundType' enum.

    Type of refund to do, either partial or full. The actual refund however can be
    for any amount regardless of this type.
    The reason being that there may be fees so the refund can be full even though
    some amount is kept.

    Attributes:
        FULL: The enum member of type str.
        PARTIAL: The enum member of type str.

    """

    _all_values = ["FULL", "PARTIAL"]
    FULL = "FULL"

    PARTIAL = "PARTIAL"

    @classmethod
    def validate(cls, value):
        """Validate value contains in enum

        Args:
            value: the value to be validated

        Returns:
            boolean : if value is valid enum values.

        """
        return value in cls._all_values

    @classmethod
    def from_value(cls, value, default=None):
        """Return the matching enum value for the given input."""
        if value is None:
            return default

        # If numeric and matches directly
        if isinstance(value, int):
            for name, val in cls.__dict__.items():
                if not name.startswith("_") and val == value:
                    return val

        # If string, perform case-insensitive match
        if isinstance(value, str):
            value_lower = value.lower()
            for name, val in cls.__dict__.items():
                if not name.startswith("_") and (
                    name.lower() == value_lower or str(val).lower() == value_lower
                ):
                    return val

        # Fallback to default
        return default
