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

from dataclasses import dataclass
from typing import List

import betterproto


class EInternalAccountType(betterproto.Enum):
    SteamAccountType = 1
    ClanType = 2
    AppType = 3
    BroadcastChannelType = 4


class EExternalAccountType(betterproto.Enum):
    NONE = 0
    SteamAccount = 1
    GoogleAccount = 2
    FacebookAccount = 3
    TwitterAccount = 4
    TwitchAccount = 5
    YouTubeChannelAccount = 6
    FacebookPage = 7


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


@dataclass(eq=False, repr=False)
class CUserAccountGetAvailableValveDiscountPromotionsResponse(betterproto.Message):
    promotions: List[
        "CUserAccountGetAvailableValveDiscountPromotionsResponseValveDiscountPromotionDetails"
    ] = betterproto.message_field(1)


@dataclass(eq=False, repr=False)
class CUserAccountGetAvailableValveDiscountPromotionsResponseValveDiscountPromotionDetails(betterproto.Message):
    promotionid: int = betterproto.uint32_field(1)
    promotion_description: str = betterproto.string_field(2)
    minimum_cart_amount: int = betterproto.int64_field(3)
    minimum_cart_amount_for_display: int = betterproto.int64_field(4)
    discount_amount: int = betterproto.int64_field(5)
    currency_code: int = betterproto.int32_field(6)
    available_use_count: int = betterproto.int32_field(7)
    promotional_discount_type: int = betterproto.int32_field(8)
    loyalty_reward_id: int = betterproto.int32_field(9)
    localized_name_token: str = betterproto.string_field(10)
    max_use_count: int = betterproto.int32_field(11)


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


@dataclass(eq=False, repr=False)
class CUserAccountGetAccountLinkStatusResponse(betterproto.Message):
    pwid: int = betterproto.uint32_field(1)
    identity_verification: int = betterproto.uint32_field(2)
    performed_age_verification: bool = betterproto.bool_field(3)


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


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


@dataclass(eq=False, repr=False)
class CUserAccountCreateFriendInviteTokenRequest(betterproto.Message):
    invite_limit: int = betterproto.uint32_field(1)
    invite_duration: int = betterproto.uint32_field(2)
    invite_note: str = betterproto.string_field(3)


@dataclass(eq=False, repr=False)
class CUserAccountCreateFriendInviteTokenResponse(betterproto.Message):
    invite_token: str = betterproto.string_field(1)
    invite_limit: int = betterproto.uint64_field(2)
    invite_duration: int = betterproto.uint64_field(3)
    time_created: int = betterproto.fixed32_field(4)
    valid: bool = betterproto.bool_field(5)


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


@dataclass(eq=False, repr=False)
class CUserAccountGetFriendInviteTokensResponse(betterproto.Message):
    tokens: List["CUserAccountCreateFriendInviteTokenResponse"] = betterproto.message_field(1)


@dataclass(eq=False, repr=False)
class CUserAccountViewFriendInviteTokenRequest(betterproto.Message):
    steamid: int = betterproto.fixed64_field(1)
    invite_token: str = betterproto.string_field(2)


@dataclass(eq=False, repr=False)
class CUserAccountViewFriendInviteTokenResponse(betterproto.Message):
    valid: bool = betterproto.bool_field(1)
    steamid: int = betterproto.uint64_field(2)
    invite_duration: int = betterproto.uint64_field(3)


@dataclass(eq=False, repr=False)
class CUserAccountRedeemFriendInviteTokenRequest(betterproto.Message):
    steamid: int = betterproto.fixed64_field(1)
    invite_token: str = betterproto.string_field(2)


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


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


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


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


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


@dataclass(eq=False, repr=False)
class CAccountLinkingGetLinkedAccountInfoRequest(betterproto.Message):
    account_type: "EInternalAccountType" = betterproto.enum_field(1)
    account_id: int = betterproto.uint64_field(2)
    filter: "EExternalAccountType" = betterproto.enum_field(3)
    return_access_token: bool = betterproto.bool_field(4)


@dataclass(eq=False, repr=False)
class CAccountLinkingGetLinkedAccountInfoResponse(betterproto.Message):
    external_accounts: List[
        "CAccountLinkingGetLinkedAccountInfoResponseCExternalAccountTupleResponse"
    ] = betterproto.message_field(1)


@dataclass(eq=False, repr=False)
class CAccountLinkingGetLinkedAccountInfoResponseCExternalAccountTupleResponse(betterproto.Message):
    external_type: "EExternalAccountType" = betterproto.enum_field(1)
    external_id: str = betterproto.string_field(2)
    external_user_name: str = betterproto.string_field(3)
    external_url: str = betterproto.string_field(4)
    access_token: str = betterproto.string_field(5)
    access_token_secret: str = betterproto.string_field(6)
    is_valid: bool = betterproto.bool_field(7)


@dataclass(eq=False, repr=False)
class CEmbeddedClientAuthorizeCurrentDeviceRequest(betterproto.Message):
    steamid: int = betterproto.fixed64_field(1)
    appid: int = betterproto.uint32_field(2)
    device_info: str = betterproto.string_field(3)
    deviceid: int = betterproto.uint32_field(4)


@dataclass(eq=False, repr=False)
class CEmbeddedClientToken(betterproto.Message):
    steamid: int = betterproto.fixed64_field(1)
    client_token: bytes = betterproto.bytes_field(2)
    expiry: int = betterproto.uint32_field(3)
    deviceid: int = betterproto.uint32_field(4)


@dataclass(eq=False, repr=False)
class CEmbeddedClientAuthorizeDeviceResponse(betterproto.Message):
    result: int = betterproto.uint32_field(1)
    token: "CEmbeddedClientToken" = betterproto.message_field(2)
