package main type SocketRequest struct { Version int `json:"version"` Action string `json:"action"` } type ConnUpdateRequest struct { SocketRequest Payload ConnUpdatePayload `json:"payload"` } type ConnUpdatePayload struct { Mode string `json:"mode"` Name string `json:"name"` Desc string `json:"desc"` GameId string `json:"game_id"` Secret string `json:"secret"` MaxPlayers int `json:"max_players"` Players int `json:"players"` Public bool `json:"public"` Guests []Guest `json:"guests"` } type Guest struct { GuestId int `json:"guest_id"` UserId int `json:"user_id"` Gamepad bool `json:"gamepad"` Keyboard bool `json:"keyboard"` Mouse bool `json:"mouse"` } type OfferModel struct { SocketRequest Payload OfferPayload `json:"payload"` } type OfferPayload struct { To string `json:"to"` Data any `json:"data"` AttemptId string `json:"attempt_id"` Secret string `json:"secret"` AccessLinkId string `json:"access_link_id"` From string `json:"from"` IsOwner bool `json:"is_owner"` SkipApproval bool `json:"skip_approval"` Permissions Permission `json:"permissions"` User OfferUser `json:"user"` HostUser OfferUser `json:"host_user"` } type Permission struct { Gamepad bool `json:"gamepad"` Keyboard bool `json:"keyboard"` Mouse bool `json:"mouse"` } type OfferUser struct { Id int `json:"id"` TeamId string `json:"team_id"` Name string `json:"name"` ExternalId string `json:"external_id"` ExternalProvider string `json:"external_provider"` } type AnswerModel struct { SocketRequest Payload AnswerPayload `json:"payload"` } type AnswerPayload struct { To string `json:"to"` Data any `json:"data"` AttemptId string `json:"attempt_id"` Approved bool `json:"approved"` From string `json:"from"` UserId int `json:"user_id"` } type CandexModel struct { SocketRequest Payload CandexPayload `json:"payload"` } type CandexPayload struct { To string `json:"to"` Data CandexData `json:"data"` AttemptId string `json:"attempt_id"` From string `json:"from"` } type CandexData struct { FromStun bool `json:"from_stun"` Ip string `json:"ip"` Lan bool `json:"lan"` Port int `json:"port"` Sync bool `json:"sync"` VerData int `json:"ver_data"` } type OfferCancelModel struct { SocketRequest Payload OfferCancelPayload `json:"payload"` } type OfferCancelPayload struct { To string `json:"to"` AttemptId string `json:"attempt_id"` From string `json:"from"` UserId int `json:"user_id"` }