<?php

declare(strict_types=1);

namespace Aventa\Examples\Greeting;

use XiunoEvolution\Kernel\RuntimeContext;

final class GreetingService
{
    /** @param array<string, mixed> $payload */
    public function render(RuntimeContext $runtime, array $payload): string
    {
        $name = trim((string) ($payload['name'] ?? 'Aventa'));
        if ($name === '') {
            $name = 'Aventa';
        }

        $prefix = $runtime->config->get('greeting.prefix', null);
        if (!is_string($prefix) || trim($prefix) === '') {
            $prefix = $runtime->data->get('example_greetings', 'default_prefix');
        }
        if (!is_string($prefix) || trim($prefix) === '') {
            $prefix = '你好';
        }

        $message = trim($prefix) . '，' . $name . '！';
        $runtime->cache->put('last-greeting', $message);
        $runtime->logger->log('info', 'Example greeting rendered.', ['name' => $name]);

        return $message;
    }
}
