hunk.code_window: 	if result.Err = member.IsValid(); result.Err != nil {
   		return result
   	}
   	if err := transaction.Insert(member); err != nil {
   		if IsUniqueConstraintError(err.Error(), []string{"ChannelId", "channelmembers_pkey"}) {
   			result.Err = model.NewAppError("SqlChannelStore.SaveMember", "store.sql_channel.save_member.exists.app_error", nil, "channel_id="+member.ChannelId+", user_id="+member.UserId+", "+err.Error(), http.StatusBadRequest)
   		} else {
   			result.Err = model.NewAppError("SqlChannelStore.SaveMember", "store.sql_channel.save_member.save.app_error", nil, "channel_id="+member.ChannelId+", user_id="+member.UserId+", "+err.Error(), http.StatusInternalServerError)
   		}
  
hunk.labels: keep keep keep keep keep replace keep keep keep keep
hunk.after_edit: 		if IsUniqueConstraintError(err, []string{"ChannelId", "channelmembers_pkey"}) {
  
hunk.file_path: store/sql_channel_store.go
hunk.type: replace
file: // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
  // See License.txt for license information.
  
  package model
  
  import (
  	"encoding/json"
  	"io"
  )
  
  type TeamStats struct {
  	TeamId            string `json:"team_id"`
  	TotalMemberCount  int64  `json:"total_member_count"`
  	ActiveMemberCount int64  `json:"active_member_count"`
  }
  
  func (o *TeamStats) ToJson() string {
  	b, err := json.Marshal(o)
  	if err != nil {
  		return ""
  	} else {
  		return string(b)
  	}
  }
  
  func TeamStatsFromJson(data io.Reader) *TeamStats {
  	decoder := json.NewDecoder(data)
  	var o TeamStats
  	err := decoder.Decode(&o)
  	if err == nil {
  		return &o
  	} else {
  		return nil
  	}
  }
  