Source code for bungieapi.generated.components.schemas.social.friends

# generated by update to not change manually
import dataclasses as dt
import typing as t
from enum import Enum

from bungieapi.json import to_json


[docs]@dt.dataclass(frozen=True) class BungieFriendListResponse: friends: t.Optional[t.Sequence["BungieFriend"]] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]: return { "friends": to_json(self.friends), }
[docs]@dt.dataclass(frozen=True) class BungieFriend: bungie_global_display_name: t.Optional[str] = None bungie_global_display_name_code: t.Optional[int] = None bungie_net_user: t.Optional["GeneralUser"] = None last_seen_as_bungie_membership_type: t.Optional["BungieMembershipType"] = None last_seen_as_membership_id: t.Optional[int] = None online_status: t.Optional["PresenceStatus"] = None online_title: t.Optional["PresenceOnlineStateFlags"] = None relationship: t.Optional["FriendRelationshipState"] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]: return { "lastSeenAsMembershipId": to_json(self.last_seen_as_membership_id), "lastSeenAsBungieMembershipType": to_json( self.last_seen_as_bungie_membership_type ), "bungieGlobalDisplayName": to_json(self.bungie_global_display_name), "bungieGlobalDisplayNameCode": to_json( self.bungie_global_display_name_code ), "onlineStatus": to_json(self.online_status), "onlineTitle": to_json(self.online_title), "relationship": to_json(self.relationship), "bungieNetUser": to_json(self.bungie_net_user), }
[docs]class PresenceStatus(Enum): OFFLINE_OR_UNKNOWN = 0 ONLINE = 1
[docs]class PresenceOnlineStateFlags(Enum): NONE = 0 DESTINY1 = 1 DESTINY2 = 2
[docs]class FriendRelationshipState(Enum): UNKNOWN = 0 FRIEND = 1 INCOMING_REQUEST = 2 OUTGOING_REQUEST = 3
[docs]@dt.dataclass(frozen=True) class BungieFriendRequestListResponse: incoming_requests: t.Optional[t.Sequence["BungieFriend"]] = None outgoing_requests: t.Optional[t.Sequence["BungieFriend"]] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]: return { "incomingRequests": to_json(self.incoming_requests), "outgoingRequests": to_json(self.outgoing_requests), }
[docs]class PlatformFriendType(Enum): UNKNOWN = 0 XBOX = 1 PSN = 2 STEAM = 3
[docs]@dt.dataclass(frozen=True) class PlatformFriendResponse: current_page: t.Optional[int] = None has_more: t.Optional[bool] = None items_per_page: t.Optional[int] = None platform_friends: t.Optional[t.Sequence["PlatformFriend"]] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]: return { "itemsPerPage": to_json(self.items_per_page), "currentPage": to_json(self.current_page), "hasMore": to_json(self.has_more), "platformFriends": to_json(self.platform_friends), }
[docs]@dt.dataclass(frozen=True) class PlatformFriend: bungie_global_display_name: t.Optional[str] = None bungie_global_display_name_code: t.Optional[int] = None bungie_net_membership_id: t.Optional[int] = None destiny_membership_id: t.Optional[int] = None destiny_membership_type: t.Optional[int] = None friend_platform: t.Optional["PlatformFriendType"] = None platform_display_name: t.Optional[str] = None
[docs] def to_json(self) -> t.Mapping[str, t.Any]: return { "platformDisplayName": to_json(self.platform_display_name), "friendPlatform": to_json(self.friend_platform), "destinyMembershipId": to_json(self.destiny_membership_id), "destinyMembershipType": to_json(self.destiny_membership_type), "bungieNetMembershipId": to_json(self.bungie_net_membership_id), "bungieGlobalDisplayName": to_json(self.bungie_global_display_name), "bungieGlobalDisplayNameCode": to_json( self.bungie_global_display_name_code ), }
# imported at the end to do not case circular imports for type annotations from bungieapi.generated.components.schemas import BungieMembershipType # noqa: E402 from bungieapi.generated.components.schemas.user import GeneralUser # noqa: E402