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),
}
# 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