"""Loyalty event type contracts (publish-only)."""
from __future__ import annotations

import enum


class LoyaltyEventType(str, enum.Enum):
    PROGRAM_CREATED = "loyalty.program.created"
    PROGRAM_UPDATED = "loyalty.program.updated"
    PROGRAM_DELETED = "loyalty.program.deleted"
    TIER_CREATED = "loyalty.tier.created"
    TIER_UPDATED = "loyalty.tier.updated"
    TIER_DELETED = "loyalty.tier.deleted"
    MEMBER_CREATED = "loyalty.member.created"
    MEMBER_UPDATED = "loyalty.member.updated"
    MEMBER_ENROLLED = "loyalty.member.enrolled"
    MEMBER_ACTIVATED = "loyalty.member.activated"
    MEMBER_RENEWED = "loyalty.member.renewed"
    MEMBER_FROZEN = "loyalty.member.frozen"
    MEMBER_RESUMED = "loyalty.member.resumed"
    MEMBER_CANCELLED = "loyalty.member.cancelled"
    MEMBER_EXPIRED = "loyalty.member.expired"
    MEMBER_TRANSFERRED = "loyalty.member.transferred"
    MEMBER_DELETED = "loyalty.member.deleted"
    POINT_ACCOUNT_OPENED = "loyalty.point_account.opened"
    POINT_ACCOUNT_UPDATED = "loyalty.point_account.updated"
    POINT_ACCOUNT_DELETED = "loyalty.point_account.deleted"
    POINTS_EARNED = "loyalty.points.earned"
    POINTS_REDEEMED = "loyalty.points.redeemed"
    POINTS_ADJUSTED = "loyalty.points.adjusted"
    POINTS_EXPIRED = "loyalty.points.expired"
    REWARD_CREATED = "loyalty.reward.created"
    REWARD_UPDATED = "loyalty.reward.updated"
    REWARD_DELETED = "loyalty.reward.deleted"
    REWARD_REDEEMED = "loyalty.reward.redeemed"
    REWARD_FULFILLED = "loyalty.reward.fulfilled"
    REWARD_REDEMPTION_CANCELLED = "loyalty.reward.redemption_cancelled"
    CAMPAIGN_CREATED = "loyalty.campaign.created"
    CAMPAIGN_UPDATED = "loyalty.campaign.updated"
    CAMPAIGN_DELETED = "loyalty.campaign.deleted"
    CAMPAIGN_SCHEDULED = "loyalty.campaign.scheduled"
    CAMPAIGN_ACTIVATED = "loyalty.campaign.activated"
    CAMPAIGN_PAUSED = "loyalty.campaign.paused"
    CAMPAIGN_RESUMED = "loyalty.campaign.resumed"
    CAMPAIGN_EXPIRED = "loyalty.campaign.expired"
    CAMPAIGN_RULES_UPDATED = "loyalty.campaign.rules_updated"
    CAMPAIGN_APPLIED = "loyalty.campaign.applied"
    REFERRAL_PROGRAM_CREATED = "loyalty.referral.program_created"
    REFERRAL_PROGRAM_UPDATED = "loyalty.referral.program_updated"
    REFERRAL_PROGRAM_DELETED = "loyalty.referral.program_deleted"
    REFERRAL_CODE_ISSUED = "loyalty.referral.code_issued"
    REFERRAL_CODE_REVOKED = "loyalty.referral.code_revoked"
    REFERRAL_ATTRIBUTED = "loyalty.referral.attributed"
    REFERRAL_CONVERTED = "loyalty.referral.converted"
    REFERRAL_REWARDED = "loyalty.referral.rewarded"
    REFERRAL_CANCELLED = "loyalty.referral.cancelled"
    WALLET_OPENED = "loyalty.wallet.opened"
    WALLET_CREDITED = "loyalty.wallet.credited"
    WALLET_DEBITED = "loyalty.wallet.debited"
    WALLET_ADJUSTED = "loyalty.wallet.adjusted"
    WALLET_TRANSFERRED = "loyalty.wallet.transferred"
    WALLET_CLOSED = "loyalty.wallet.closed"
