hunk.code_window: type WebSocketRequest struct {
   	// Client-provided fields
   	Seq    int64                  `json:"seq"`
   	Action string                 `json:"action"`
   	Data   map[string]interface{} `json:"data"`
   	// Server-provided fields
   	Session Session              `json:"-"`
   	T       goi18n.TranslateFunc `json:"-"`
  
hunk.labels: keep keep replace replace replace keep keep keep keep
hunk.after_edit: 	Seq    int64                  `json:"seq"`    // A counter which is incremented for every request made.
   	Action string                 `json:"action"` // The action to perform for a request. For example: get_statuses, user_typing.
   	Data   map[string]interface{} `json:"data"`   // The metadata for an action.
  
hunk.file_path: model/websocket_request.go
hunk.type: replace
file: // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
  // See LICENSE.txt for license information.
  
  package model
  
  import (
  	"encoding/json"
  	"io"
  
  	goi18n "github.com/mattermost/go-i18n/i18n"
  )
  
  type WebSocketRequest struct {
  	// Client-provided fields
  	Seq    int64                  `json:"seq"`
  	Action string                 `json:"action"`
  	Data   map[string]interface{} `json:"data"`
  
  	// Server-provided fields
  	Session Session              `json:"-"`
  	T       goi18n.TranslateFunc `json:"-"`
  	Locale  string               `json:"-"`
  }
  
  func (o *WebSocketRequest) ToJson() string {
  	b, _ := json.Marshal(o)
  	return string(b)
  }
  
  func WebSocketRequestFromJson(data io.Reader) *WebSocketRequest {
  	var o *WebSocketRequest
  	json.NewDecoder(data).Decode(&o)
  	return o
  }
  