using MediatR;
using FacebookService.API.Application.Dtos;

namespace FacebookService.API.Application.Commands;

/// <summary>
/// EN: Command to create or update AI Chatbot configuration.
/// VI: Command để tạo hoặc cập nhật cấu hình AI Chatbot.
/// </summary>
/// <param name="ShopId">EN: Shop ID / VI: ID shop</param>
/// <param name="Provider">EN: AI provider (OpenAI, AzureOpenAI) / VI: Nhà cung cấp AI</param>
/// <param name="Model">EN: Model name (e.g., gpt-4-turbo) / VI: Tên model</param>
/// <param name="SystemPrompt">EN: System prompt for AI context / VI: System prompt cho ngữ cảnh AI</param>
/// <param name="Temperature">EN: Temperature (0.0 - 2.0) / VI: Temperature</param>
/// <param name="MaxTokens">EN: Max tokens for response / VI: Max tokens cho response</param>
public record UpsertAIChatbotConfigCommand(
    Guid ShopId,
    string Provider,
    string Model,
    string SystemPrompt,
    float Temperature = 0.7f,
    int MaxTokens = 500
) : IRequest<UpsertAIChatbotConfigResult>;

/// <summary>
/// EN: Result of UpsertAIChatbotConfigCommand.
/// VI: Kết quả của UpsertAIChatbotConfigCommand.
/// </summary>
public record UpsertAIChatbotConfigResult(Guid Id, bool IsNew, bool Success);
