from enum import Enum


class Capability(Enum):
    GENERATE = "generate"


class Reason(Enum):
    BOT = "bot"


class Status(Enum):
    GRANTED = "granted"
    # Revoked with user-facing error
    REVOKED = "revoked"

    # Bot statuses
    DEGRADED = "degraded"
    # Revoked without user-facing error / support path
    SILENTLY_REVOKED = "silently_revoked"
    WATERMARKED = "watermarked"


class EntityType(Enum):
    DOMAIN = "domain"
    USER = "user"


# Asset groups
class JobGroup(Enum):
    BOTS = "bots"
    BOT_ENFORCEMENTS = "bot_enforcements"
    MODERATION = "moderation"


class JobName(Enum):
    BOT_MODEL_DOMAIN_SYNC = "bot_model_domain_sync"
    BOT_MODEL_USER_SYNC = "bot_model_user_sync"
    FREE_HOTLOOK_BOTS = "free_hotlook_bots"
    HIGH_RISK_PHONE_SIGNUPS = "high_risk_phone_signups"
    REGIONAL_OUTLOOK_BOTS = "regional_outlook_bots"


class Vendor(Enum):
    BRAZE = "braze"
    CLERK = "clerk"
    STRIPE = "stripe"
