package session import ( "time" messagecontracts "github.com/example/remote-access-platform/backend/pkg/contracts/message" ) type ControllerBinding struct { SessionID string `json:"session_id"` AttachmentID string `json:"attachment_id"` UserID string `json:"user_id"` DeviceID string `json:"device_id"` TakeoverVersion int `json:"takeover_version"` BoundAt time.Time `json:"bound_at"` } type AttachTokenClaims struct { Token string `json:"token"` SessionID string `json:"session_id"` AttachmentID string `json:"attachment_id"` UserID string `json:"user_id"` DeviceID string `json:"device_id"` WorkerID string `json:"worker_id"` TakeoverVersion int `json:"takeover_version"` ExpiresAt time.Time `json:"expires_at"` Reconnectable bool `json:"reconnectable"` } type TransportEnvelope struct { Type string `json:"type"` SessionID string `json:"session_id,omitempty"` Payload map[string]any `json:"payload,omitempty"` Event *messagecontracts.Message `json:"event,omitempty"` }