"""
Error definitions for the licensing module.
"""

# Subscription errors
NO_ACTIVE_SUBSCRIPTION = (403, "NO_ACTIVE_SUBSCRIPTION")
SUBSCRIPTION_EXPIRED = (403, "SUBSCRIPTION_EXPIRED")
SUBSCRIPTION_INACTIVE = (403, "SUBSCRIPTION_INACTIVE")
SUBSCRIPTION_ALREADY_EXISTS = (400, "SUBSCRIPTION_ALREADY_EXISTS")

# Rule errors
QUOTA_EXCEEDED = (429, "QUOTA_EXCEEDED")
FEATURE_NOT_AVAILABLE = (403, "FEATURE_NOT_AVAILABLE")
UNKNOWN_RULE = (500, "UNKNOWN_RULE")

# Plan errors
PLAN_NOT_AVAILABLE = (400, "PLAN_NOT_AVAILABLE")
PLAN_VERSION_NOT_FOUND = (404, "PLAN_VERSION_NOT_FOUND")

# User association errors
USER_ALREADY_LICENSED = (400, "USER_ALREADY_LICENSED")
USER_NOT_LICENSED = (404, "USER_NOT_LICENSED")
MAX_LICENSED_USERS_REACHED = (429, "MAX_LICENSED_USERS_REACHED")

# Downgrade errors
DOWNGRADE_RULE_NOT_FOUND = (500, "DOWNGRADE_RULE_NOT_FOUND")