namespace GmRelay.Shared.Features.Sessions.RescheduleSession;

public sealed record RescheduleOptionDto(
    Guid OptionId,
    int DisplayOrder,
    DateTimeOffset ProposedAt);

public sealed record VoteProposalDto(
    Guid Id,
    Guid SessionId,
    DateTimeOffset VotingDeadlineAt,
    string Title,
    DateTime CurrentScheduledAt);

public sealed record RescheduleOptionVoteDto(
    Guid OptionId,
    Guid PlayerId,
    string DisplayName,
    string? TelegramUsername);

public sealed record RescheduleOptionVoteCount(
    Guid OptionId,
    int VoteCount);

public sealed record VoteParticipantDto(
    Guid PlayerId,
    string DisplayName,
    string? TelegramUsername,
    long TelegramId = 0);
