package main

import (
  "sync"

  "github.com/gorilla/websocket"
)

type XY struct {
	X int `json:"x"`
	Y int `json:"y"`
}

type Player struct {
	Id string `json:"id"`
	RoomId string `json:"roomId"`

	Color int `json:"color"`

	Speed int64 `json:"speed"`
	UpdatedAt int64 `json:"updatedAt"`

	X int `json:"x"`
	Y int `json:"y"`
	Dx int `json:"dx"`
	Dy int `json:"dy"`

	Tail []XY `json:"tail"`

	GameOver bool `json:"gameOver"`

	Connection *websocket.Conn `json:"-"`
	IsLastTimeUpdated bool `json:"-"`

	LastInput PlayerInput `json:"-"`
	LastSendAt int64 `json:"-"`

  Lock sync.Mutex `json:"-"`
}

type PlayerInput struct {
	Direction int `json:"direction"`
}

type WsDataPlayer struct {
	Id string `json:"id"`
	RoomId string `json:"roomId"`

	Color int `json:"color"`

	Speed int64 `json:"speed"`
	UpdatedAt int64 `json:"updatedAt"`

	X int `json:"x"`
	Y int `json:"y"`
	Dx int `json:"dx"`
	Dy int `json:"dy"`

	Tail []XY `json:"tail"`

	GameOver bool `json:"gameOver"`
}
