"""Dependency-free constants for disposable licensing-server qualification."""

from __future__ import annotations

import re


QUALIFICATION_PROJECT_PREFIX = "apolon-licensing-qualification-"
QUALIFICATION_DATABASE_PREFIX = "apolon_licensing_qualification_"
QUALIFICATION_RESTORE_DATABASE_PREFIX = "apolon_licensing_restore_"
QUALIFICATION_IDENTIFIER_PATTERN = re.compile(r"\A[0-9a-f]{12}\Z")
QUALIFICATION_PROJECT_PATTERN = re.compile(
    rf"\A{QUALIFICATION_PROJECT_PREFIX}([0-9a-f]{{12}})\Z"
)
QUALIFICATION_CONCURRENT_REDEEMERS = 2
QUALIFICATION_SUCCESSFUL_REDEMPTIONS = 1
QUALIFICATION_REJECTED_REDEMPTIONS = (
    QUALIFICATION_CONCURRENT_REDEEMERS - QUALIFICATION_SUCCESSFUL_REDEMPTIONS
)
QUALIFICATION_RATE_LIMIT_ATTEMPTS = 16
QUALIFICATION_RATE_LIMIT_MAXIMUM_ACCEPTED = 8
QUALIFICATION_RATE_LIMIT_REPLICAS = 4
QUALIFICATION_RATE_LIMIT_LIMITED = (
    QUALIFICATION_RATE_LIMIT_ATTEMPTS - QUALIFICATION_RATE_LIMIT_MAXIMUM_ACCEPTED
)
