from __future__ import annotations

from enum import Enum


class LicenceType(str, Enum):
    PERPETUAL = "perpetual"
    SUBSCRIPTION = "subscription"


class LicenceStatus(str, Enum):
    ACTIVE = "active"
    SUSPENDED = "suspended"
    REVOKED = "revoked"
    EXPIRED = "expired"


class ActivationStatus(str, Enum):
    ACTIVE = "active"
    DEACTIVATED = "deactivated"
    REVOKED = "revoked"


class DirectServerStatus(str, Enum):
    ACTIVE = "active"
    ACTIVATION_REQUIRED = "activationRequired"
    EXPIRED_SUBSCRIPTION = "expiredSubscription"
    GRACE_PERIOD = "gracePeriod"
    REVOKED = "revoked"
    SUSPENDED = "suspended"
    ACTIVATION_LIMIT_EXCEEDED = "activationLimitExceeded"
    INVALID_LICENCE = "invalidLicence"
    INVALID_ACTIVATION = "invalidActivation"
    UNAVAILABLE = "unavailable"


class LicenceEventType(str, Enum):
    LICENCE_CREATED = "licence_created"
    ACTIVATION_SUCCEEDED = "activation_succeeded"
    ACTIVATION_DENIED = "activation_denied"
    VALIDATION_SUCCEEDED = "validation_succeeded"
    VALIDATION_DENIED = "validation_denied"
    DEACTIVATION = "deactivation"
    REVOCATION = "revocation"
    SUSPENSION = "suspension"
    STATUS_CHANGE = "status_change"
