namespace FacebookService.API.Application.Dtos;

/// <summary>
/// EN: ChatbotFlow DTO for API responses.
/// VI: ChatbotFlow DTO cho API responses.
/// </summary>
public record ChatbotFlowDto(
    Guid Id,
    Guid ShopId,
    string Name,
    string TriggerType,
    string TriggerValue,
    bool IsActive,
    DateTime CreatedAt,
    DateTime? UpdatedAt,
    IReadOnlyList<FlowNodeDto>? Nodes = null
);

/// <summary>
/// EN: ChatbotFlow summary DTO for list responses.
/// VI: ChatbotFlow summary DTO cho list responses.
/// </summary>
public record ChatbotFlowSummaryDto(
    Guid Id,
    string Name,
    string TriggerType,
    string TriggerValue,
    bool IsActive,
    DateTime CreatedAt
);

/// <summary>
/// EN: FlowNode DTO for API responses.
/// VI: FlowNode DTO cho API responses.
/// </summary>
public record FlowNodeDto(
    Guid Id,
    string NodeType,
    string? Content,
    int OrderIndex,
    IReadOnlyCollection<Guid> NextNodeIds,
    IReadOnlyDictionary<string, object>? Config = null
);

/// <summary>
/// EN: AIChatbotConfig DTO for API responses.
/// VI: AIChatbotConfig DTO cho API responses.
/// </summary>
public record AIChatbotConfigDto(
    Guid Id,
    Guid ShopId,
    string Provider,
    string Model,
    string SystemPrompt,
    float Temperature,
    int MaxTokens,
    bool IsEnabled,
    DateTime CreatedAt,
    DateTime UpdatedAt
);
