from enum import StrEnum


class BucketStatus(StrEnum):
    PENDING = "pending"
    BUILDING = "building"
    RESOLVED = "resolved"
    UNDER_REVIEW = "under_review"
    UNDER_REFRESH = "under_refresh"
    CLOSED = "closed"

class CommandGroupStatus(StrEnum):
    PENDING = "pending"
    READY_FOR_TASK = "ready_for_task"
    TASK_PENDING = "task_pending"
    TASK_APPROVED = "task_approved"
    TASK_REJECTED = "task_rejected"

class CommandStatus(StrEnum):
    PENDING = "pending"
    EDITED = "edited"
    APPROVED = "approved"
    REJECTED = "rejected"

class CommandType(StrEnum):
    CREATE = "create"
    RETIRE = "retire"
    RETIRE_BULK = "retire_bulk"
    UPDATE = "update"
    REFRESH = "refresh"

class FindingType(StrEnum):
    ADD = "add"
    RETIRE = "retire"
    UPDATE = "update"

class QueryExecutionStatus(StrEnum):
    PENDING = "pending"
    SUCCESS = "success"
    ERROR = "error"

class AlignmentProcessingStatus(StrEnum):
    PENDING = "pending"
    IN_PROGRESS = "in_progress"
    READY = "ready"
    FAILED = "failed"

class AlignmentWorkflowStatus(StrEnum):
    NOT_STARTED = "not_started"
    IN_PROGRESS = "in_progress"
    CLOSED = "closed"


__all__ = [
    "BucketStatus",
    "CommandGroupStatus",
    "CommandStatus",
    "CommandType",
    "FindingType",
    "QueryExecutionStatus",
    "AlignmentProcessingStatus",
    "AlignmentWorkflowStatus",
]
