from __future__ import annotations from enum import StrEnum class LlmBillingConfigKey(StrEnum): ENABLED = "llm_billing_enabled" HOLD_DEFAULT = "llm_hold_credits_default" HOLD_GENERATION_RECORD_PROMPT = "llm_hold_credits_generation_record_prompt" HOLD_MODULE_IMAGE_PROMPT = "llm_hold_credits_module_image_prompt" HOLD_MODULE_VIDEO_PROMPT = "llm_hold_credits_module_video_prompt" HOLD_SHOT_VIDEO_ANALYSIS = "llm_hold_credits_shot_video_analysis" LEGACY_OPTIMIZE_HOLD = "optimize_hold_credits" class LlmBillingLedgerState(StrEnum): BILLING_BYPASSED = "billing_bypassed" MISSING = "missing" ACTIVE = "active" RELEASED = "released" CHARGED = "charged" INVALID = "invalid" class LlmBillingEvent(StrEnum): HOLD_START = "LLM_HOLD_START" HOLD_SUCCESS = "LLM_HOLD_SUCCESS" HOLD_BYPASSED = "LLM_HOLD_BYPASSED" HOLD_INSUFFICIENT = "LLM_HOLD_INSUFFICIENT" HOLD_CONFIG_INVALID = "LLM_HOLD_CONFIG_INVALID" HOLD_MISSING = "LLM_HOLD_MISSING" HOLD_RELEASE_START = "LLM_HOLD_RELEASE_START" HOLD_RELEASE_SUCCESS = "LLM_HOLD_RELEASE_SUCCESS" HOLD_RELEASE_SKIPPED = "LLM_HOLD_RELEASE_SKIPPED" FAILURE_RELEASE_START = "LLM_FAILURE_RELEASE_START" FAILURE_RELEASE_SUCCESS = "LLM_FAILURE_RELEASE_SUCCESS" FAILURE_RELEASE_SKIPPED = "LLM_FAILURE_RELEASE_SKIPPED" EXECUTION_VALIDATE_START = "LLM_EXECUTION_VALIDATE_START" EXECUTION_VALIDATE_SUCCESS = "LLM_EXECUTION_VALIDATE_SUCCESS" EXECUTION_BLOCKED = "LLM_EXECUTION_BLOCKED" PROVIDER_START = "LLM_PROVIDER_START" PROVIDER_SUCCESS = "LLM_PROVIDER_SUCCESS" PROVIDER_FAILURE = "LLM_PROVIDER_FAILURE" SETTLE_START = "LLM_SETTLE_START" SETTLE_SUCCESS = "LLM_SETTLE_SUCCESS" CHARGE_SUCCESS = "LLM_CHARGE_SUCCESS" CHARGE_NEGATIVE_BALANCE = "LLM_CHARGE_NEGATIVE_BALANCE" SETTLE_FAILED = "LLM_SETTLE_FAILED" CELERY_DISPATCH_START = "LLM_CELERY_DISPATCH_START" CELERY_DISPATCH_SUCCESS = "LLM_CELERY_DISPATCH_SUCCESS" CELERY_DISPATCH_FAILURE = "LLM_CELERY_DISPATCH_FAILURE" CELERY_DISPATCH_COMPENSATED = "LLM_CELERY_DISPATCH_COMPENSATED" RETRY_PREVIOUS_ATTEMPT_VALIDATE_START = "LLM_RETRY_PREVIOUS_ATTEMPT_VALIDATE_START" RETRY_PREVIOUS_ATTEMPT_VALIDATE_SUCCESS = "LLM_RETRY_PREVIOUS_ATTEMPT_VALIDATE_SUCCESS" RETRY_PREVIOUS_ATTEMPT_BLOCKED = "LLM_RETRY_PREVIOUS_ATTEMPT_BLOCKED" USAGE_INVALID = "LLM_USAGE_INVALID" TOKEN_USAGE_CREATED = "LLM_TOKEN_USAGE_CREATED" TOKEN_USAGE_REUSED = "LLM_TOKEN_USAGE_REUSED" class LlmBillingDomain(StrEnum): LLM_BILLING = "llm_billing"