from enum import Enum


class GBTConstraintType(str, Enum):
    ANGLE = "ANGLE"
    BEZIER_DEGREE = "BEZIER_DEGREE"
    CENTERLINE_DIMENSION = "CENTERLINE_DIMENSION"
    CIRCULAR_PATTERN = "CIRCULAR_PATTERN"
    COINCIDENT = "COINCIDENT"
    CONCENTRIC = "CONCENTRIC"
    DIAMETER = "DIAMETER"
    DISTANCE = "DISTANCE"
    EQUAL = "EQUAL"
    EQUAL_CURVATURE = "EQUAL_CURVATURE"
    FIX = "FIX"
    FREEZE = "FREEZE"
    HORIZONTAL = "HORIZONTAL"
    INTERSECTED = "INTERSECTED"
    LENGTH = "LENGTH"
    LINEAR_PATTERN = "LINEAR_PATTERN"
    MAJOR_DIAMETER = "MAJOR_DIAMETER"
    MIDPOINT = "MIDPOINT"
    MINOR_DIAMETER = "MINOR_DIAMETER"
    MIRROR = "MIRROR"
    NONE = "NONE"
    NORMAL = "NORMAL"
    OFFSET = "OFFSET"
    PARALLEL = "PARALLEL"
    PERPENDICULAR = "PERPENDICULAR"
    PIERCE = "PIERCE"
    PROJECTED = "PROJECTED"
    QUADRANT = "QUADRANT"
    RADIUS = "RADIUS"
    RHO = "RHO"
    SILHOUETTED = "SILHOUETTED"
    TANGENT = "TANGENT"
    UNKNOWN = "UNKNOWN"
    VERTICAL = "VERTICAL"

    def __str__(self) -> str:
        return str(self.value)
