*/ private const PUBLIC_GROUPS = [ 'frontend', 'currency', ]; public function __invoke(Request $request): JsonResponse { $group = $request->query('group'); if (! is_string($group) || $group === '' || ! in_array($group, self::PUBLIC_GROUPS, true)) { return ApiMessage::errorResponse( $request, 'invalid_settings_group', ErrorCode::ClientHttpError->value, ['allowed_groups' => self::PUBLIC_GROUPS], 400, ); } $items = LotterySetting::query() ->where('group_name', $group) ->orderBy('setting_key') ->get() ->map(fn (LotterySetting $s): array => [ 'key' => $s->setting_key, 'value' => $s->value_json, 'group' => $s->group_name, 'description' => $s->description_zh, ]); return ApiResponse::success(['items' => $items]); } }