from enum import Enum


class DisplayOption(Enum):
    DEPRECATED_DYNAMIC = -1
    """No dynamic page without width or height.
    Deprecated: Use other display options."""
    FIT_TO_PAGE = 0
    """Page is scaled so both width and height fit on the current viewport."""
    FIT_TO_WIDTH = 1
    """Only width is scaled to fit on the current viewport, height will be updated to maintain page aspect ratio."""
    ACTUAL_SIZE = 2
    """No scaling is done - page is centered relative to the report canvas."""
    ACTUAL_SIZE_TOP_LEFT = 3
    """No scaling is done - page is anchored to top-left corder relative to the report canvas.
    Deprecated: Use ActualSize instead."""


class SectionVisibility(Enum):
    VISIBLE = 0
    HIDDEN = 1


class BindingType(Enum):
    DEFAULT = "Default"
    """No specific usage of this binding."""
    DRILL_THROUGH = "Drillthrough"
    """Binding to be used as drillthrough."""
    TOOLTIP = "Tooltip"
    """Binding to be used as tooltip page."""


class ReferenceScope(Enum):
    DEFAULT = "Default"
    """Scope is restricted to the report."""
    CROSS_REPORT = "CrossReport"
    """Scope is across reports - for cross-report drillthrough."""


class AcceptsFilterContext(Enum):
    DEFAULT = "Default"
    """Flows filter context"""
    NONE = "None"
    """Additional filter context does not flow to the binding."""


class PageType(Enum):
    DRILL_THROUGH = "Drillthrough"
    """Page to be used as drillthrough."""
    TOOLTIP = "Tooltip"
    """Page to be used as tooltip."""


class PageVisibility(Enum):
    ALWAYS_VISIBLE = "AlwaysVisible"
    """Page is always shown in the pages list"""
    HIDDEN_IN_VIEW_MODE = "HiddenInViewMode"
    """Page is not visible when viewing report in View mode."""


class VisualInteractionFilterType(Enum):
    DEFAULT = "Default"
    """The target visual type determines if it should accept the interaction as a highlight or as a filter."""
    DATA_FILTER = "DataFilter"
    """Data point selection is added as a filter to the target visual."""
    HIGHLIGHT_FILTER = "HighlightFilter"
    """Data point selection is added as a highlight to the target visual."""
    NO_FILTER = "NoFilter"
    """Data point selection is ignored by the target visual."""


class PageHowCreated(Enum):
    DEFAULT = "Default"
    """Page is generated by user interaction."""
    COPILOT = "Copilot"
    """Page is created by copilot."""
