namespace FacebookService.API.Application.Dtos;

/// <summary>
/// EN: Conversation DTO for API responses.
/// VI: Conversation DTO cho API responses.
/// </summary>
public record ConversationDto(
    Guid Id,
    Guid CustomerId,
    CustomerSummaryDto? Customer,
    string PageId,
    string Status,
    string Channel,
    string? AssignedAgentId,
    DateTime? LastMessageAt,
    DateTime CreatedAt,
    IReadOnlyList<MessageDto>? Messages = null
);

/// <summary>
/// EN: Conversation summary DTO for list responses.
/// VI: Conversation summary DTO cho list responses.
/// </summary>
public record ConversationSummaryDto(
    Guid Id,
    Guid CustomerId,
    string? CustomerName,
    string PageId,
    string Status,
    string? LastMessageText,
    DateTime? LastMessageAt,
    DateTime CreatedAt
);

/// <summary>
/// EN: Message DTO for API responses.
/// VI: Message DTO cho API responses.
/// </summary>
public record MessageDto(
    Guid Id,
    string SenderId,
    string Content,
    string MessageType,
    string Direction,
    DateTime SentAt,
    string? FacebookMessageId = null,
    IReadOnlyDictionary<string, object>? Metadata = null
);
