from enum import Enum

class ValidationErrorCode(str, Enum):
    ACCESS_DENIED = "access_denied"
    ALREADY_ASSIGNED = "already_assigned"
    ALREADY_EXISTS = "already_exists"
    BLANK = "blank"
    DISPLAYED_ERROR = "displayed_error"
    EXCLUSION = "exclusion"
    FORBIDDEN = "forbidden"
    GENERAL_LIMIT = "general_limit"
    IN = "in"
    INCLUSION = "inclusion"
    INVALID = "invalid"
    INVALID_DATE_RANGE = "invalid_date_range"
    INVALID_WEBHOOK_URL = "invalid_webhook_url"
    LICENSES_LIMIT = "licenses_limit"
    MAX_LENGTH = "max_length"
    MIN_LENGTH = "min_length"
    NOT_APPLICABLE = "not_applicable"
    NOT_AUTHORIZED = "not_authorized"
    NOT_FOUND = "not_found"
    OWNER_PROTECTED = "owner_protected"
    PAYMENT_REQUIRED = "payment_required"
    PERMISSION_DENIED = "permission_denied"
    PERSONAL_CHAT = "personal_chat"
    RATE_LIMIT = "rate_limit"
    REQUIRED = "required"
    SELF_UPDATE = "self_update"
    TAKEN = "taken"
    TOO_LONG = "too_long"
    TRIGGER_EXPIRED = "trigger_expired"
    TRIGGER_NOT_FOUND = "trigger_not_found"
    UNHANDLED = "unhandled"
    UNIQUE_LIMIT = "unique_limit"
    USER_LIMIT = "user_limit"
    WRONG_EMOJI = "wrong_emoji"
    WRONG_PARAMS = "wrong_params"

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