from enum import Enum


class HydrogenBondParameter(Enum):
    INCLUDE = "TRAM_HYDROGEN_INCLUDE"
    MINIMAL_LENGTH = "TRAM_HYDROGEN_MINIMAL_LENGTH"
    ENERGY_THRESHOLD = "TRAM_HYDROGEN_ENERGY_THRESHOLD"
    CUTOFF_DISTANCE = "TRAM_HYDROGEN_CUTOFF_DISTANCE"
    STRONG_ENERGY_THRESHOLD = "TRAM_HYDROGEN_STRONG_ENERGY_THRESHOLD"
    BAR_COUNT = "TRAM_HYDROGEN_BAR_COUNT"


class HydrophobicInteractionParameter(Enum):
    INCLUDE = "TRAM_HYDROPHOBIC_INCLUDE"
    MINIMAL_LENGTH = "TRAM_HYDROPHOBIC_MINIMAL_LENGTH"
    POTENTIAL = "TRAM_HYDROPHOBIC_USE_POTENTIAL"
    SURFACE_CUTOFF_DISTANCE = "TRAM_HYDROPHOBIC_SURFACE_CUTOFF_DISTANCE"
    POTENTIAL_CUTOFF_DISTANCE = "TRAM_HYDROPHOBIC_POTENTIAL_CUTOFF_DISTANCE"
    SCALE_14 = "TRAM_HYDROPHOBIC_SCALE_14"
    SCALE_15 = "TRAM_HYDROPHOBIC_SCALE_15"
    SCALE_UNBOUNDED = "TRAM_HYDROPHOBIC_SCALE_UNBOUNDED"
    ENERGY_THRESHOLD = "TRAM_HYDROPHOBIC_ENERGY_THRESHOLD"
    BAR_COUNT = "TRAM_HYDROPHOBIC_BAR_COUNT"


class DisulphideBridgeParameter(Enum):
    INCLUDE = "TRAM_DISULPHIDE_INCLUDE"
    CUTOFF_DISTANCE = "TRAM_DISULPHIDE_CUTOFF_DISTANCE"


class CationPiInteractionParameter(Enum):
    INCLUDE = "TRAM_CATION_PI_INCLUDE"
    CUTOFF_DISTANCE = "TRAM_CATION_PI_CUTOFF_DISTANCE"
    BAR_COUNT = "TRAM_CATION_PI_BAR_COUNT"


class AromaticInteractionParameter(Enum):
    INCLUDE = "TRAM_AROMATIC_INCLUDE"
    CUTOFF_DISTANCE_PI = "TRAM_AROMATIC_CUTOFF_DISTANCE_PI"
    CUTOFF_DISTANCE_T = "TRAM_AROMATIC_CUTOFF_DISTANCE_T"
    ANGLE_VARIANCE = "TRAM_AROMATIC_ANGLE_VARIANCE"
    BAR_COUNT = "TRAM_AROMATIC_BAR_COUNT"


class PdbEntryInteractionParameter(Enum):
    SSBOND_INCLUDE = "TRAM_SSBOND_INCLUDE"
    LINK_INCLUDE = "TRAM_LINK_INCLUDE"
    CONECT_INCLUDE = "TRAM_CONECT_INCLUDE"
