using System;
using System.Collections.Generic;

namespace Knot.Modules.Conversations.Application.DTOs;

public record ChatMessageDto(
    Guid Id,
    Guid ChatId,
    Guid SenderId,
    string? Content,
    string Type,
    Guid? ReplyToId,
    string? Quote,
    Guid? StoryId,
    string? StoryMediaUrl,
    string? StoryMediaType,
    bool IsEdited,
    bool IsDeleted,
    DateTime CreatedAt,
    long SequenceId,
    List<MediaDto> Media,
    MessageSenderDto Sender,
    List<ReactionDto> Reactions,
    List<ReadByDto> ReadBy,
    string? CallType = null,
    string? CallStatus = null,
    int? Duration = null,
    List<PollOptionDto>? PollOptions = null,
    bool? PollIsMultipleChoice = null,
    bool? PollIsAnonymous = null,
    bool? PollIsClosed = null,
    List<Guid>? UserVotedOptionIds = null
);

public record PollOptionDto(Guid Id, string Text, int VoteCount, List<MessageSenderDto>? Voters = null, List<Guid>? VoterIds = null);


