<?php

namespace App\Enums;

enum UserRole: string
{
    case USER = 'USER';
    case MODERATOR = 'MODERATOR';
    case ADMIN = 'ADMIN';
    case SUPERUSER = 'SUPERUSER';

    public function label(): string
    {
        return match($this) {
            self::USER => 'User',
            self::MODERATOR => 'Moderator',
            self::ADMIN => 'Admin',
            self::SUPERUSER => 'Superuser',
        };
    }

    public function canModerate(): bool
    {
        return match($this) {
            self::MODERATOR, self::ADMIN, self::SUPERUSER => true,
            default => false,
        };
    }

    public function canAdmin(): bool
    {
        return match($this) {
            self::ADMIN, self::SUPERUSER => true,
            default => false,
        };
    }
}