package tools

import (
	"context"

	"github.com/modelcontextprotocol/go-sdk/mcp"

	"git.warky.dev/wdevs/amcs/internal/store"
	thoughttypes "git.warky.dev/wdevs/amcs/internal/types"
)

type StatsTool struct {
	store *store.DB
}

type StatsInput struct{}

type StatsOutput struct {
	Stats thoughttypes.ThoughtStats `json:"stats"`
}

func NewStatsTool(db *store.DB) *StatsTool {
	return &StatsTool{store: db}
}

func (t *StatsTool) Handle(ctx context.Context, _ *mcp.CallToolRequest, _ StatsInput) (*mcp.CallToolResult, StatsOutput, error) {
	stats, err := t.store.Stats(ctx)
	if err != nil {
		return nil, StatsOutput{}, err
	}

	return nil, StatsOutput{Stats: stats}, nil
}
