from enum import Enum


class TextVariant(Enum):
    PRODUCT_NAME = "PRODUCT_NAME"
    PRODUCT_FULL_DESCRIPTION = "PRODUCT_FULL_DESCRIPTION"
    PRODUCT_SHORT_DESCRIPTION = "PRODUCT_SHORT_DESCRIPTION"
    PRODUCT_ATTRIBUTE_NAME = "PRODUCT_ATTRIBUTE_NAME"
    PRODUCT_ATTRIBUTE_TERM = "PRODUCT_ATTRIBUTE_TERM"
    PRODUCT_CATEGORY = "PRODUCT_CATEGORY"

    @property
    def readable(self):
        return self.value.lower().replace("_", " ")


class LLMRequestVariant(Enum):
    TRANSLATE_PRODUCT_NAME = "TRANSLATE_PRODUCT_NAME"
    TRANSLATE_PRODUCT_CATEGORY_NAME = "TRANSLATE_PRODUCT_CATEGORY_NAME"
    TRANSLATE_PRODUCT_FULL_DESCRIPTION = "TRANSLATE_PRODUCT_FULL_DESCRIPTION"
    TRANSLATE_PRODUCT_SHORT_DESCRIPTION = "TRANSLATE_PRODUCT_SHORT_DESCRIPTION"
    TRANSLATE_PRODUCT_ATTRIBUTE_NAME = "TRANSLATE_PRODUCT_ATTRIBUTE_NAME"
    TRANSLATE_PRODUCT_ATTRIBUTE_TERM = "TRANSLATE_PRODUCT_ATTRIBUTE_TERM"
    ASSIGN_PRODUCT_CATEGORY = "ASSIGN_PRODUCT_CATEGORY"
    ASSIGN_FURNITURE_TYPE = "ASSIGN_FURNITURE_TYPE"

    @property
    def readable(self):
        return self.value.replace("TRANSLATE_", "").replace("ASSIGN_").lower().replace("_", " ")
