<?php

namespace App\Enums;

enum ModerationActionType: string
{
    case MarkSafe = 'mark_safe';
    case ConfirmSpam = 'confirm_spam';
    case Ignore = 'ignore';
    case Resolve = 'resolve';
    case HideComment = 'hide_comment';
    case HideArtwork = 'hide_artwork';
    case AutoHideComment = 'auto_hide_comment';
    case AutoHideArtwork = 'auto_hide_artwork';
    case RestoreComment = 'restore_comment';
    case RestoreArtwork = 'restore_artwork';
    case BlockDomain = 'block_domain';
    case MarkDomainSuspicious = 'mark_domain_suspicious';
    case AllowDomain = 'allow_domain';
    case Rescan = 'rescan';
    case BulkReview = 'bulk_review';
    case MarkFalsePositive = 'mark_false_positive';
    case Escalate = 'escalate';
    case ResolveCluster = 'resolve_cluster';
    case ReviewerFeedback = 'reviewer_feedback';

    public function label(): string
    {
        return match ($this) {
            self::MarkSafe => 'Mark Safe',
            self::ConfirmSpam => 'Confirm Spam',
            self::Ignore => 'Ignore',
            self::Resolve => 'Resolve',
            self::HideComment => 'Hide Comment',
            self::HideArtwork => 'Hide Artwork',
            self::AutoHideComment => 'Auto-hide Comment',
            self::AutoHideArtwork => 'Auto-hide Artwork',
            self::RestoreComment => 'Restore Comment',
            self::RestoreArtwork => 'Restore Artwork',
            self::BlockDomain => 'Block Domain',
            self::MarkDomainSuspicious => 'Mark Domain Suspicious',
            self::AllowDomain => 'Allow Domain',
            self::Rescan => 'Rescan',
            self::BulkReview => 'Bulk Review',
            self::MarkFalsePositive => 'Mark False Positive',
            self::Escalate => 'Escalate',
            self::ResolveCluster => 'Resolve Cluster',
            self::ReviewerFeedback => 'Reviewer Feedback',
        };
    }
}