<?php

namespace App\Support;

enum OperationRunType: string
{
    case BaselineCapture = 'baseline_capture';
    case BaselineCompare = 'baseline_compare';
    case InventorySync = 'inventory_sync';
    case PolicySync = 'policy.sync';
    case PolicySyncOne = 'policy.sync_one';
    case DirectoryGroupsSync = 'entra_group_sync';
    case BackupSetAddPolicies = 'backup_set.add_policies';
    case BackupSetRemovePolicies = 'backup_set.remove_policies';
    case BackupScheduleExecute = 'backup_schedule_run';
    case BackupScheduleRetention = 'backup_schedule_retention';
    case BackupSchedulePurge = 'backup_schedule_purge';
    case DirectoryRoleDefinitionsSync = 'directory_role_definitions.sync';
    case RestoreExecute = 'restore.execute';
    case EntraAdminRolesScan = 'entra.admin_roles.scan';
    case ReviewPackGenerate = 'tenant.review_pack.generate';
    case RbacHealthCheck = 'rbac.health_check';

    public static function values(): array
    {
        return array_map(static fn (self $case): string => $case->value, self::cases());
    }
}
