package dev.sonpx.loyalty.mcp.service;

import dev.sonpx.loyalty.mcp.model.Result;
import dev.sonpx.loyalty.mcp.reward.client.CounterDefinitionClient;
import dev.sonpx.loyalty.mcp.reward.model.CounterDefinition;
import java.util.Arrays;
import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

@Service
@Slf4j
@RequiredArgsConstructor
public class CounterDefinitionService {

    private final CounterDefinitionClient counterDefinitionClient;

    public Result<CounterDefinition> findById(String counterId) {
        CounterDefinition counter = counterDefinitionClient.findById(counterId);
        return Result.of(counter, """
                Trả lời tự nhiên bằng tiếng Việt. Trình bày chi tiết thông tin Counter một cách rõ ràng:
                - Thông tin cơ bản: Tên Counter, Mã Counter, Loại Counter.
                - Chu kỳ, Giới hạn Counter.
                Dùng bullet list hoặc dạng key-value dễ đọc.
                """);
    }

    public Result<List<CounterDefinition>> findActiveByIds(String ids) {
        List<String> idList = Arrays.asList(ids.split(",\\s*"));
        List<CounterDefinition> counters = counterDefinitionClient.findActiveByIds(idList);
        return Result.of(counters, """
                Trả lời tự nhiên bằng tiếng Việt. Hiển thị danh sách các Counter, mỗi Counter ghi: Tên, Mã, Loại.
                Không dùng markdown table.
                """);
    }
}
