# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: base_gcmessages.proto
# plugin: python-betterproto

from dataclasses import dataclass

import betterproto

from ....protobufs.msg import GCProtobufMessage
from ..enums import EMsg


class EgcBaseProtoObjectTypes(betterproto.Enum):
    PartyInvite = 1001
    LobbyInvite = 1002


class GcBannedWordType(betterproto.Enum):
    DisableWord = 0
    EnableWord = 1


class GameServerInfoServerType(betterproto.Enum):
    Unspecified = 0
    Game = 1
    Proxy = 2


@dataclass(eq=False, repr=False)
class CgcStorePurchaseInitLineItem(betterproto.Message):
    item_def_id: int = betterproto.uint32_field(1)
    quantity: int = betterproto.uint32_field(2)
    cost_in_local_currency: int = betterproto.uint32_field(3)
    purchase_type: int = betterproto.uint32_field(4)


class StorePurchaseInit(GCProtobufMessage, msg=EMsg.StorePurchaseInit):
    country: str = betterproto.string_field(1)
    language: int = betterproto.int32_field(2)
    currency: int = betterproto.int32_field(3)
    line_items: "list[CgcStorePurchaseInitLineItem]" = betterproto.message_field(4)


@dataclass(eq=False, repr=False)
class StorePurchaseInitResponse(betterproto.Message):
    result: int = betterproto.int32_field(1)
    txn_id: int = betterproto.uint64_field(2)
    url: str = betterproto.string_field(3)
    item_ids: list[int] = betterproto.uint64_field(4)


@dataclass(eq=False, repr=False)
class CsoPartyInvite(betterproto.Message):
    group_id: int = betterproto.uint64_field(1)
    sender_id: int = betterproto.fixed64_field(2)
    sender_name: str = betterproto.string_field(3)


@dataclass(eq=False, repr=False)
class CsoLobbyInvite(betterproto.Message):
    group_id: int = betterproto.uint64_field(1)
    sender_id: int = betterproto.fixed64_field(2)
    sender_name: str = betterproto.string_field(3)


@dataclass(eq=False, repr=False)
class SystemBroadcast(betterproto.Message):
    message: str = betterproto.string_field(1)


@dataclass(eq=False, repr=False)
class InviteToParty(betterproto.Message):
    steam_id: int = betterproto.fixed64_field(1)
    client_version: int = betterproto.uint32_field(2)
    team_invite: int = betterproto.uint32_field(3)


@dataclass(eq=False, repr=False)
class InvitationCreated(betterproto.Message):
    group_id: int = betterproto.uint64_field(1)
    steam_id: int = betterproto.fixed64_field(2)


@dataclass(eq=False, repr=False)
class PartyInviteResponse(betterproto.Message):
    party_id: int = betterproto.uint64_field(1)
    accept: bool = betterproto.bool_field(2)
    client_version: int = betterproto.uint32_field(3)
    team_invite: int = betterproto.uint32_field(4)


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


@dataclass(eq=False, repr=False)
class LeaveParty(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class ServerAvailable(betterproto.Message):
    pass


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


@dataclass(eq=False, repr=False)
class GameAccountClient(betterproto.Message):
    additional_backpack_slots: int = betterproto.uint32_field(1)
    bonus_xp_timestamp_refresh: int = betterproto.fixed32_field(12)
    bonus_xp_usedflags: int = betterproto.uint32_field(13)
    elevated_state: int = betterproto.uint32_field(14)
    elevated_timestamp: int = betterproto.uint32_field(15)


@dataclass(eq=False, repr=False)
class CriteriaCondition(betterproto.Message):
    op: int = betterproto.int32_field(1)
    field: str = betterproto.string_field(2)
    required: bool = betterproto.bool_field(3)
    float_value: float = betterproto.float_field(4)
    string_value: str = betterproto.string_field(5)


@dataclass(eq=False, repr=False)
class Criteria(betterproto.Message):
    item_level: int = betterproto.uint32_field(1)
    item_quality: int = betterproto.int32_field(2)
    item_level_set: bool = betterproto.bool_field(3)
    item_quality_set: bool = betterproto.bool_field(4)
    initial_inventory: int = betterproto.uint32_field(5)
    initial_quantity: int = betterproto.uint32_field(6)
    ignore_enabled_flag: bool = betterproto.bool_field(8)
    conditions: "list[CriteriaCondition]" = betterproto.message_field(9)
    item_rarity: int = betterproto.int32_field(10)
    item_rarity_set: bool = betterproto.bool_field(11)
    recent_only: bool = betterproto.bool_field(12)


@dataclass(eq=False, repr=False)
class Recipe(betterproto.Message):
    def_index: int = betterproto.uint32_field(1)
    name: str = betterproto.string_field(2)
    n_a: str = betterproto.string_field(3)
    desc_inputs: str = betterproto.string_field(4)
    desc_outputs: str = betterproto.string_field(5)
    di_a: str = betterproto.string_field(6)
    di_b: str = betterproto.string_field(7)
    di_c: str = betterproto.string_field(8)
    do_a: str = betterproto.string_field(9)
    do_b: str = betterproto.string_field(10)
    do_c: str = betterproto.string_field(11)
    requires_all_same_class: bool = betterproto.bool_field(12)
    requires_all_same_slot: bool = betterproto.bool_field(13)
    class_usage_for_output: int = betterproto.int32_field(14)
    slot_usage_for_output: int = betterproto.int32_field(15)
    set_for_output: int = betterproto.int32_field(16)
    input_items_criteria: "list[Criteria]" = betterproto.message_field(20)
    output_items_criteria: "list[Criteria]" = betterproto.message_field(21)
    input_item_dupe_counts: list[int] = betterproto.uint32_field(22)


@dataclass(eq=False, repr=False)
class DevNewItemRequest(betterproto.Message):
    receiver: int = betterproto.fixed64_field(1)
    criteria: "Criteria" = betterproto.message_field(2)


@dataclass(eq=False, repr=False)
class IncrementKillCountAttribute(betterproto.Message):
    killer_account_id: int = betterproto.fixed32_field(1)
    victim_account_id: int = betterproto.fixed32_field(2)
    item_id: int = betterproto.uint64_field(3)
    event_type: int = betterproto.uint32_field(4)
    amount: int = betterproto.uint32_field(5)


@dataclass(eq=False, repr=False)
class ApplySticker(betterproto.Message):
    sticker_item_id: int = betterproto.uint64_field(1)
    item_item_id: int = betterproto.uint64_field(2)
    sticker_slot: int = betterproto.uint32_field(3)
    baseitem_defidx: int = betterproto.uint32_field(4)
    sticker_wear: float = betterproto.float_field(5)


@dataclass(eq=False, repr=False)
class ModifyItemAttribute(betterproto.Message):
    item_id: int = betterproto.uint64_field(1)
    attr_defidx: int = betterproto.uint32_field(2)
    attr_value: int = betterproto.uint32_field(3)


@dataclass(eq=False, repr=False)
class ApplyStatTrakSwap(betterproto.Message):
    tool_item_id: int = betterproto.uint64_field(1)
    item_1_item_id: int = betterproto.uint64_field(2)
    item_2_item_id: int = betterproto.uint64_field(3)


@dataclass(eq=False, repr=False)
class ApplyStrangePart(betterproto.Message):
    strange_part_item_id: int = betterproto.uint64_field(1)
    item_item_id: int = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class ApplyPennantUpgrade(betterproto.Message):
    upgrade_item_id: int = betterproto.uint64_field(1)
    pennant_item_id: int = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class ApplyEggEssence(betterproto.Message):
    essence_item_id: int = betterproto.uint64_field(1)
    egg_item_id: int = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class ItemAttribute(betterproto.Message):
    def_index: int = betterproto.uint32_field(1)
    value: int = betterproto.uint32_field(2)
    value_bytes: bytes = betterproto.bytes_field(3)


@dataclass(eq=False, repr=False)
class ItemEquipped(betterproto.Message):
    new_class: int = betterproto.uint32_field(1)
    new_slot: int = betterproto.uint32_field(2)


@dataclass(eq=False, repr=False)
class Item(betterproto.Message):
    id: int = betterproto.uint64_field(1)
    account_id: int = betterproto.uint32_field(2)
    inventory: int = betterproto.uint32_field(3)
    def_index: int = betterproto.uint32_field(4)
    quantity: int = betterproto.uint32_field(5)
    level: int = betterproto.uint32_field(6)
    quality: int = betterproto.uint32_field(7)
    flags: int = betterproto.uint32_field(8)
    origin: int = betterproto.uint32_field(9)
    custom_name: str = betterproto.string_field(10)
    custom_description: str = betterproto.string_field(11)
    attribute: "list[ItemAttribute]" = betterproto.message_field(12)
    interior_item: "Item" = betterproto.message_field(13)
    in_use: bool = betterproto.bool_field(14)
    style: int = betterproto.uint32_field(15)
    original_id: int = betterproto.uint64_field(16)
    equipped_state: "list[ItemEquipped]" = betterproto.message_field(18)
    rarity: int = betterproto.uint32_field(19)


@dataclass(eq=False, repr=False)
class AdjustItemEquippedState(betterproto.Message):
    item_id: int = betterproto.uint64_field(1)
    new_class: int = betterproto.uint32_field(2)
    new_slot: int = betterproto.uint32_field(3)
    swap: bool = betterproto.bool_field(4)


@dataclass(eq=False, repr=False)
class AdjustItemEquippedStateMulti(betterproto.Message):
    t_equips: list[int] = betterproto.uint64_field(1)
    ct_equips: list[int] = betterproto.uint64_field(2)
    noteam_equips: list[int] = betterproto.uint64_field(3)


@dataclass(eq=False, repr=False)
class SortItems(betterproto.Message):
    sort_type: int = betterproto.uint32_field(1)


@dataclass(eq=False, repr=False)
class ClaimCode(betterproto.Message):
    account_id: int = betterproto.uint32_field(1)
    code_type: int = betterproto.uint32_field(2)
    time_acquired: int = betterproto.uint32_field(3)
    code: str = betterproto.string_field(4)


@dataclass(eq=False, repr=False)
class StoreGetUserData(betterproto.Message):
    price_sheet_version: int = betterproto.fixed32_field(1)
    currency: int = betterproto.int32_field(2)


@dataclass(eq=False, repr=False)
class StoreGetUserDataResponse(betterproto.Message):
    result: int = betterproto.int32_field(1)
    currency_deprecated: int = betterproto.int32_field(2)
    country_deprecated: str = betterproto.string_field(3)
    price_sheet_version: int = betterproto.fixed32_field(4)
    price_sheet: bytes = betterproto.bytes_field(8)


@dataclass(eq=False, repr=False)
class UpdateItemSchema(betterproto.Message):
    items_game: bytes = betterproto.bytes_field(1)
    item_schema_version: int = betterproto.fixed32_field(2)
    items_game_url_deprecated2013: str = betterproto.string_field(3)
    items_game_url: str = betterproto.string_field(4)


@dataclass(eq=False, repr=False)
class Error(betterproto.Message):
    error_text: str = betterproto.string_field(1)


@dataclass(eq=False, repr=False)
class RequestInventoryRefresh(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class ConVarValue(betterproto.Message):
    name: str = betterproto.string_field(1)
    value: str = betterproto.string_field(2)


@dataclass(eq=False, repr=False)
class ReplicateConVars(betterproto.Message):
    convars: "list[ConVarValue]" = betterproto.message_field(1)


@dataclass(eq=False, repr=False)
class UseItem(betterproto.Message):
    item_id: int = betterproto.uint64_field(1)
    target_steam_id: int = betterproto.fixed64_field(2)
    gift_potential_targets: list[int] = betterproto.uint32_field(3)
    duel_class_lock: int = betterproto.uint32_field(4)
    initiator_steam_id: int = betterproto.fixed64_field(5)


@dataclass(eq=False, repr=False)
class ReplayUploadedToYouTube(betterproto.Message):
    youtube_url: str = betterproto.string_field(1)
    youtube_account_name: str = betterproto.string_field(2)
    session_id: int = betterproto.uint64_field(3)


@dataclass(eq=False, repr=False)
class ConsumableExhausted(betterproto.Message):
    item_def_id: int = betterproto.int32_field(1)


@dataclass(eq=False, repr=False)
class ItemAcknowledgedDeprecated(betterproto.Message):
    account_id: int = betterproto.uint32_field(1)
    inventory: int = betterproto.uint32_field(2)
    def_index: int = betterproto.uint32_field(3)
    quality: int = betterproto.uint32_field(4)
    rarity: int = betterproto.uint32_field(5)
    origin: int = betterproto.uint32_field(6)
    item_id: int = betterproto.uint64_field(7)


@dataclass(eq=False, repr=False)
class SetItemPositions(betterproto.Message):
    item_positions: "list[SetItemPositionsItemPosition]" = betterproto.message_field(1)


@dataclass(eq=False, repr=False)
class SetItemPositionsItemPosition(betterproto.Message):
    legacy_item_id: int = betterproto.uint32_field(1)
    position: int = betterproto.uint32_field(2)
    item_id: int = betterproto.uint64_field(3)


@dataclass(eq=False, repr=False)
class ReportAbuse(betterproto.Message):
    target_steam_id: int = betterproto.fixed64_field(1)
    description: str = betterproto.string_field(4)
    gid: int = betterproto.uint64_field(5)
    abuse_type: int = betterproto.uint32_field(2)
    content_type: int = betterproto.uint32_field(3)
    target_game_server_ip: int = betterproto.fixed32_field(6)
    target_game_server_port: int = betterproto.uint32_field(7)


@dataclass(eq=False, repr=False)
class ReportAbuseResponse(betterproto.Message):
    target_steam_id: int = betterproto.fixed64_field(1)
    result: int = betterproto.uint32_field(2)
    error_message: str = betterproto.string_field(3)


@dataclass(eq=False, repr=False)
class NameItemNotification(betterproto.Message):
    player_steamid: int = betterproto.fixed64_field(1)
    item_def_index: int = betterproto.uint32_field(2)
    item_name_custom: str = betterproto.string_field(3)


@dataclass(eq=False, repr=False)
class ClientDisplayNotification(betterproto.Message):
    notification_title_localization_key: str = betterproto.string_field(1)
    notification_body_localization_key: str = betterproto.string_field(2)
    body_substring_keys: list[str] = betterproto.string_field(3)
    body_substring_values: list[str] = betterproto.string_field(4)


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


@dataclass(eq=False, repr=False)
class IncrementKillCountResponse(betterproto.Message):
    killer_account_id: int = betterproto.uint32_field(1)
    num_kills: int = betterproto.uint32_field(2)
    item_def: int = betterproto.uint32_field(3)
    level_type: int = betterproto.uint32_field(4)


@dataclass(eq=False, repr=False)
class ItemDropRateBonus(betterproto.Message):
    account_id: int = betterproto.uint32_field(1)
    expiration_date: int = betterproto.fixed32_field(2)
    bonus: float = betterproto.float_field(3)
    bonus_count: int = betterproto.uint32_field(4)
    item_id: int = betterproto.uint64_field(5)
    def_index: int = betterproto.uint32_field(6)


@dataclass(eq=False, repr=False)
class ItemLeagueViewPass(betterproto.Message):
    account_id: int = betterproto.uint32_field(1)
    league_id: int = betterproto.uint32_field(2)
    admin: int = betterproto.uint32_field(3)
    itemindex: int = betterproto.uint32_field(4)


@dataclass(eq=False, repr=False)
class ItemEventTicket(betterproto.Message):
    account_id: int = betterproto.uint32_field(1)
    event_id: int = betterproto.uint32_field(2)
    item_id: int = betterproto.uint64_field(3)


@dataclass(eq=False, repr=False)
class ItemPreviewItemBoughtNotification(betterproto.Message):
    item_def_index: int = betterproto.uint32_field(1)


@dataclass(eq=False, repr=False)
class StorePurchaseCancel(betterproto.Message):
    txn_id: int = betterproto.uint64_field(1)


@dataclass(eq=False, repr=False)
class StorePurchaseCancelResponse(betterproto.Message):
    result: int = betterproto.uint32_field(1)


@dataclass(eq=False, repr=False)
class StorePurchaseFinalize(betterproto.Message):
    txn_id: int = betterproto.uint64_field(1)


@dataclass(eq=False, repr=False)
class StorePurchaseFinalizeResponse(betterproto.Message):
    result: int = betterproto.uint32_field(1)
    item_ids: list[int] = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class BannedWordListRequest(betterproto.Message):
    ban_list_group_id: int = betterproto.uint32_field(1)
    word_id: int = betterproto.uint32_field(2)


@dataclass(eq=False, repr=False)
class RequestAnnouncements(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class RequestAnnouncementsResponse(betterproto.Message):
    announcement_title: str = betterproto.string_field(1)
    announcement: str = betterproto.string_field(2)
    nextmatch_title: str = betterproto.string_field(3)
    nextmatch: str = betterproto.string_field(4)


@dataclass(eq=False, repr=False)
class BannedWord(betterproto.Message):
    word_id: int = betterproto.uint32_field(1)
    word_type: "GcBannedWordType" = betterproto.enum_field(2)
    word: str = betterproto.string_field(3)


@dataclass(eq=False, repr=False)
class BannedWordListResponse(betterproto.Message):
    ban_list_group_id: int = betterproto.uint32_field(1)
    word_list: "list[BannedWord]" = betterproto.message_field(2)


@dataclass(eq=False, repr=False)
class ToGcBannedWordListBroadcast(betterproto.Message):
    broadcast: "BannedWordListResponse" = betterproto.message_field(1)


@dataclass(eq=False, repr=False)
class ToGcBannedWordListUpdated(betterproto.Message):
    group_id: int = betterproto.uint32_field(1)


@dataclass(eq=False, repr=False)
class DefaultEquippedDefinitionInstanceClient(betterproto.Message):
    account_id: int = betterproto.uint32_field(1)
    item_definition: int = betterproto.uint32_field(2)
    class_id: int = betterproto.uint32_field(3)
    slot_id: int = betterproto.uint32_field(4)


@dataclass(eq=False, repr=False)
class ToGcDirtySdoCache(betterproto.Message):
    sdo_type: int = betterproto.uint32_field(1)
    key_uint64: int = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class ToGcDirtyMultipleSdoCache(betterproto.Message):
    sdo_type: int = betterproto.uint32_field(1)
    key_uint64: list[int] = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class CollectItem(betterproto.Message):
    collection_item_id: int = betterproto.uint64_field(1)
    subject_item_id: int = betterproto.uint64_field(2)


@dataclass(eq=False, repr=False)
class SdoNoMemcached(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class ToGcUpdateSqlKeyValue(betterproto.Message):
    key_name: str = betterproto.string_field(1)


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


@dataclass(eq=False, repr=False)
class ToGcIsTrustedServerResponse(betterproto.Message):
    is_trusted: bool = betterproto.bool_field(1)


@dataclass(eq=False, repr=False)
class ToGcBroadcastConsoleCommand(betterproto.Message):
    con_command: str = betterproto.string_field(1)


@dataclass(eq=False, repr=False)
class ServerVersionUpdated(betterproto.Message):
    server_version: int = betterproto.uint32_field(1)


@dataclass(eq=False, repr=False)
class ClientVersionUpdated(betterproto.Message):
    client_version: int = betterproto.uint32_field(1)


@dataclass(eq=False, repr=False)
class ToGcWebApiAccountChanged(betterproto.Message):
    pass


@dataclass(eq=False, repr=False)
class ToGcRequestPassportItemGrant(betterproto.Message):
    steam_id: int = betterproto.fixed64_field(1)
    league_id: int = betterproto.uint32_field(2)
    reward_flag: int = betterproto.int32_field(3)


@dataclass(eq=False, repr=False)
class GameServerInfo(betterproto.Message):
    server_public_ip_addr: int = betterproto.fixed32_field(1)
    server_private_ip_addr: int = betterproto.fixed32_field(2)
    server_port: int = betterproto.uint32_field(3)
    server_tv_port: int = betterproto.uint32_field(4)
    server_key: str = betterproto.string_field(5)
    server_hibernation: bool = betterproto.bool_field(6)
    server_type: "GameServerInfoServerType" = betterproto.enum_field(7)
    server_region: int = betterproto.uint32_field(8)
    server_loadavg: float = betterproto.float_field(9)
    server_tv_broadcast_time: float = betterproto.float_field(10)
    server_game_time: float = betterproto.float_field(11)
    server_relay_connected_steam_id: int = betterproto.fixed64_field(12)
    relay_slots_max: int = betterproto.uint32_field(13)
    relays_connected: int = betterproto.int32_field(14)
    relay_clients_connected: int = betterproto.int32_field(15)
    relayed_game_server_steam_id: int = betterproto.fixed64_field(16)
    parent_relay_count: int = betterproto.uint32_field(17)
    tv_secret_code: int = betterproto.fixed64_field(18)
