using Nexus.Api.Data;
using Nexus.Api.Integrations;

namespace Nexus.Api.Routing;

public sealed record RoutingTarget(
    int Priority,
    string Provider,
    string Model,
    string Purpose,
    OperationalStatus Status,
    string Detail);

public sealed class ModelRoutingService(
    IAgentRuntime runtime)
{
    public async Task<IReadOnlyCollection<RoutingTarget>> GetStatusAsync(
        CancellationToken cancellationToken)
    {
        var runtimeStatus = await runtime.GetStatusAsync(cancellationToken);

        return
        [
            new(1, "OpenClaw", "deepseek/deepseek-v4-flash", "Programmer agent",
                runtimeStatus.Status,
                "Routed through OpenClaw policy"),
            new(2, "OpenClaw", "deepseek/deepseek-v4-pro", "Reviewer agent",
                runtimeStatus.Status,
                "Routed through OpenClaw policy"),
            new(3, "OpenClaw", "openai/gpt-5.3-chat-latest", "Iris orchestrator",
                runtimeStatus.Status,
                "Routed through OpenClaw policy")
        ];
    }
}
