initial: bootstrap from BukidBountyApp base

This commit is contained in:
Jonathan Sykes
2026-06-06 18:43:00 +08:00
commit eb4a5731fb
5674 changed files with 160857 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
<?php
namespace App\Casts;
use Hyperf\Contract\CastsAttributes;
use App\Enums\UserActions;
class UserActionsArrayCast implements CastsAttributes
{
public function get($model, string $key, $value, array $attributes)
{
if (empty($value)) {
return [];
}
$roles = json_decode($value, true) ?? [];
return array_filter(array_map(
fn ($role) => UserActions::tryFrom($role),
$roles
));
}
public function set($model, string $key, $value, array $attributes)
{
if ($value === null) {
return null;
}
// Ensure only backing values get saved
$roles = array_map(
fn ($role) => $role instanceof UserActions ? $role->value : UserActions::from($role)->value,
$value
);
return json_encode($roles);
}
}