from yta_general_utils.programming.enum import YTAEnum as Enum


class _Origin(Enum):
    """
    Enum class to represent the origin of the content
    that will be displayed.
    """

    USER = 'user'
    """
    The content has been written or entered by the
    user when creating the project.
    """
    TEXT_TO_NARRATE_SHORTCODE = 'text_to_narrate_shortcode'
    """
    The content has been extracted automatically from
    the text narration that had some shortcodes manually
    written on it.
    """
    EDITION_MANUAL = 'edition_manual'
    """
    The content has been generated by applying the edition
    manual on the narration transcription.
    """
    AI_GENERATED = 'ai_generated'
    """
    The content has been generated by an AI that has
    interpreted the topic, the intention or something in
    the content that felt appropiate to include it as a
    way to improve it.
    """

class SegmentOrigin(Enum):
    """
    The origin of the content of a Segment.
    """

    USER = _Origin.USER.value
    """
    The content has been written or entered by the
    user when creating the project.
    """
    AI_GENERATED = _Origin.AI_GENERATED.value
    """
    The content has been generated by an AI that has
    interpreted the topic, the intention or something in
    the content that felt appropiate to include it as a
    way to improve it.
    """

class EnhancementOrigin(Enum):
    """
    The origin of the content of an Enhancement.
    """

    USER = _Origin.USER.value
    """
    The content has been written or entered by the
    user when creating the project.
    """
    TEXT_TO_NARRATE_SHORTCODE = _Origin.TEXT_TO_NARRATE_SHORTCODE.value
    """
    The content has been extracted automatically from
    the text narration that had some shortcodes manually
    written on it.
    """
    EDITION_MANUAL = _Origin.EDITION_MANUAL.value
    """
    The content has been generated by applying the edition
    manual on the narration transcription.
    """
    AI_GENERATED = _Origin.AI_GENERATED.value
    """
    The content has been generated by an AI that has
    interpreted the topic, the intention or something in
    the content that felt appropiate to include it as a
    way to improve it.
    """