namespace Ikar.Shared;

public sealed record BotSummaryDto(
    Guid Id,
    Guid UserId,
    string Username,
    string DisplayName,
    string? About,
    bool IsEnabled,
    DateTimeOffset CreatedAt,
    IReadOnlyList<BotCommandDto> Commands);

public sealed record CreateBotRequest(
    string Username,
    string DisplayName,
    string? About);

public sealed record UpdateBotRequest(
    string DisplayName,
    string? About,
    bool IsEnabled);

public sealed record CreatedBotDto(
    BotSummaryDto Bot,
    string AccessToken);

public sealed record RegenerateBotTokenResponseDto(string AccessToken);

public sealed record BotCommandDto(
    string Command,
    string Description);

public sealed record SetBotCommandsRequest(IReadOnlyList<BotCommandDto> Commands);

public enum BotUpdateKind
{
    Message = 0
}

public sealed record BotUpdateDto(
    long Id,
    BotUpdateKind Kind,
    MessageDto? Message);

public sealed record BotUpdatesResponseDto(
    long NextOffset,
    IReadOnlyList<BotUpdateDto> Updates);

public sealed record BotSendMessageRequest(
    Guid ChatId,
    string Text);
