package dev.sonpx.loyalty.mcp.tool;

import dev.sonpx.loyalty.mcp.model.Result;
import dev.sonpx.loyalty.mcp.reward.model.TransactionCode;
import dev.sonpx.loyalty.mcp.service.TransactionCodeService;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.ai.mcp.annotation.McpTool;
import org.springframework.stereotype.Component;

@Component
@RequiredArgsConstructor
public class TransactionCodeTools {

    private final TransactionCodeService transactionCodeService;

    @McpTool(description = "Lấy thông tin chi tiết một Mã giao dịch (Transaction Code) theo mã.")
    public Result<TransactionCode> getTransactionCode(String transactionCode) {
        return transactionCodeService.findByCode(transactionCode);
    }

    @McpTool(description = "Lấy thông tin nhiều Mã giao dịch theo danh sách mã, phân tách bằng dấu phẩy.")
    public Result<List<TransactionCode>> getTransactionCodes(String transactionCodes) {
        return transactionCodeService.findByCodes(transactionCodes);
    }

    @McpTool(description = "Kiểm tra xem một Mã giao dịch có tồn tại hay không.")
    public Result<Boolean> checkTransactionCodeExists(String transactionCode) {
        return transactionCodeService.exists(transactionCode);
    }
}
