"""GraphQL enum types matching schema.graphql."""

from enum import Enum

import strawberry


@strawberry.enum
class MembershipRole(Enum):
    OWNER = "owner"
    ADMIN = "admin"
    MEMBER = "member"
    VIEWER = "viewer"


@strawberry.enum
class IdentityProvider(Enum):
    SLACK = "slack"
    DISCORD = "discord"
    GITHUB = "github"
    DISCOURSE = "discourse"
    TWITTER = "twitter"
    LINKEDIN = "linkedin"
    MASTODON = "mastodon"


@strawberry.enum
class ThreadStatus(Enum):
    OPEN = "open"
    TRIAGED = "triaged"
    CLOSED = "closed"


@strawberry.enum
class SourceKind(Enum):
    SLACK_CHANNEL = "slack_channel"
    DISCORD_CHANNEL = "discord_channel"
    GITHUB_REPO = "github_repo"
    DISCOURSE_CATEGORY = "discourse_category"
    TWITTER_STREAM = "twitter_stream"
    LINKEDIN_PAGE = "linkedin_page"


@strawberry.enum
class CampaignStatus(Enum):
    DRAFT = "draft"
    SCHEDULED = "scheduled"
    SENT = "sent"


@strawberry.enum
class CampaignChannel(Enum):
    ANNOUNCEMENT = "announcement"
    EMAIL = "email"


@strawberry.enum
class SubscriptionStatus(Enum):
    ACTIVE = "active"
    PAST_DUE = "past_due"
    CANCELED = "canceled"
