# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: steammessages_friendmessages.proto
# plugin: python-betterproto
# Last updated 09/09/2021

from dataclasses import dataclass
from typing import List

import betterproto


class EMessageReactionType(betterproto.Enum):
    Invalid = 0
    Emoticon = 1
    Sticker = 2


@dataclass(eq=False, repr=False)
class GetRecentMessagesRequest(betterproto.Message):
    steamid1: int = betterproto.fixed64_field(1)
    steamid2: int = betterproto.fixed64_field(2)
    count: int = betterproto.uint32_field(3)
    most_recent_conversation: bool = betterproto.bool_field(4)
    rtime32_start_time: int = betterproto.fixed32_field(5)
    bbcode_format: bool = betterproto.bool_field(6)
    start_ordinal: int = betterproto.uint32_field(7)
    time_last: int = betterproto.uint32_field(8)
    ordinal_last: int = betterproto.uint32_field(9)


@dataclass(eq=False, repr=False)
class GetRecentMessagesResponse(betterproto.Message):
    messages: List["GetRecentMessagesResponseFriendMessage"] = betterproto.message_field(1)
    more_available: bool = betterproto.bool_field(4)


@dataclass(eq=False, repr=False)
class GetRecentMessagesResponseFriendMessage(betterproto.Message):
    accountid: int = betterproto.uint32_field(1)
    timestamp: int = betterproto.uint32_field(2)
    message: str = betterproto.string_field(3)
    ordinal: int = betterproto.uint32_field(4)
    reactions: List["GetRecentMessagesResponseFriendMessageMessageReaction"] = betterproto.message_field(5)


@dataclass(eq=False, repr=False)
class GetRecentMessagesResponseFriendMessageMessageReaction(betterproto.Message):
    reaction_type: "EMessageReactionType" = betterproto.enum_field(1)
    reaction: str = betterproto.string_field(2)
    reactors: List[int] = betterproto.uint32_field(3)


@dataclass(eq=False, repr=False)
class GetActiveMessageSessionsRequest(betterproto.Message):
    lastmessage_since: int = betterproto.uint32_field(1)
    only_sessions_with_messages: bool = betterproto.bool_field(2)


@dataclass(eq=False, repr=False)
class GetActiveMessageSessionsResponse(betterproto.Message):
    message_sessions: List["GetActiveMessageSessionsResponseFriendMessageSession"] = betterproto.message_field(1)
    timestamp: int = betterproto.uint32_field(2)


@dataclass(eq=False, repr=False)
class GetActiveMessageSessionsResponseFriendMessageSession(betterproto.Message):
    accountid_friend: int = betterproto.uint32_field(1)
    last_message: int = betterproto.uint32_field(2)
    last_view: int = betterproto.uint32_field(3)
    unread_message_count: int = betterproto.uint32_field(4)


@dataclass(eq=False, repr=False)
class SendMessageRequest(betterproto.Message):
    steamid: int = betterproto.fixed64_field(1)
    chat_entry_type: int = betterproto.int32_field(2)
    message: str = betterproto.string_field(3)
    contains_bbcode: bool = betterproto.bool_field(4)
    echo_to_sender: bool = betterproto.bool_field(5)
    low_priority: bool = betterproto.bool_field(6)
    client_message_id: str = betterproto.string_field(8)


@dataclass(eq=False, repr=False)
class SendMessageResponse(betterproto.Message):
    modified_message: str = betterproto.string_field(1)
    server_timestamp: int = betterproto.uint32_field(2)
    ordinal: int = betterproto.uint32_field(3)
    message_without_bb_code: str = betterproto.string_field(4)


@dataclass(eq=False, repr=False)
class AckMessageNotification(betterproto.Message):
    steamid_partner: int = betterproto.fixed64_field(1)
    timestamp: int = betterproto.uint32_field(2)


@dataclass(eq=False, repr=False)
class IsInFriendsUiBetaRequest(betterproto.Message):
    steamid: int = betterproto.fixed64_field(1)


@dataclass(eq=False, repr=False)
class IsInFriendsUiBetaResponse(betterproto.Message):
    online_in_friendsui: bool = betterproto.bool_field(1)
    has_used_friendsui: bool = betterproto.bool_field(2)


@dataclass(eq=False, repr=False)
class UpdateMessageReactionRequest(betterproto.Message):
    steamid: int = betterproto.fixed64_field(1)
    server_timestamp: int = betterproto.uint32_field(2)
    ordinal: int = betterproto.uint32_field(3)
    reaction_type: "EMessageReactionType" = betterproto.enum_field(4)
    reaction: str = betterproto.string_field(5)
    is_add: bool = betterproto.bool_field(6)


@dataclass(eq=False, repr=False)
class UpdateMessageReactionResponse(betterproto.Message):
    reactors: List[int] = betterproto.uint32_field(1)


@dataclass(eq=False, repr=False)
class IncomingMessageNotification(betterproto.Message):
    steamid_friend: int = betterproto.fixed64_field(1)
    chat_entry_type: int = betterproto.int32_field(2)
    from_limited_account: bool = betterproto.bool_field(3)
    message: str = betterproto.string_field(4)
    rtime32_server_timestamp: int = betterproto.fixed32_field(5)
    ordinal: int = betterproto.uint32_field(6)
    local_echo: bool = betterproto.bool_field(7)
    message_no_bbcode: str = betterproto.string_field(8)
    low_priority: bool = betterproto.bool_field(9)


@dataclass(eq=False, repr=False)
class MessageReactionNotification(betterproto.Message):
    steamid_friend: int = betterproto.fixed64_field(1)
    server_timestamp: int = betterproto.uint32_field(2)
    ordinal: int = betterproto.uint32_field(3)
    reactor: int = betterproto.fixed64_field(4)
    reaction_type: "EMessageReactionType" = betterproto.enum_field(5)
    reaction: str = betterproto.string_field(6)
    is_add: bool = betterproto.bool_field(7)
