package models

type LalServer struct {
	Server        string `json:"server_id"`
	BinInfo       string `json:"-"`
	LalVersion    string `json:"lal_version"`
	APIVersion    string `json:"-"`
	NotifyVersion string `json:"-"`
	WebUIVersion  string `json:"-"`
	StartTime     string `json:"start_time"`
}

type Pub struct {
	Server        string `json:"server_id"`
	Protocol      string `json:"protocol"`
	Url           string `json:"url"`
	AppName       string `json:"app_name"`
	Channel       string `json:"stream_name"`
	UrlParam      string `json:"url_param"`
	RemoteAddress string `json:"remotet_addr"`
	HasInSession  bool   `json:"has_in_session"`
	HasOutSession bool   `json:"has_out_session"`
}

type Update struct {
	LalServer string  `json:"server_id"`
	Groups    []Group `json:"groups"`
}

type Group struct {
	Channel     string `json:"stream_name"`
	AudioCodec  string `json:"audio_codec"`
	VideoCodec  string `json:"video_codec"`
	VideoWidth  int    `json:"video_width"`
	VideoHeight int    `json:"video_height"`
	UpdPub      UpdPub `json:"pub"`
	Subs        string `json:"subs"`
	UpdPull     UpdPub `json:"pull"`
}

type UpdPub struct {
	Protocol      string `json:"protocol"`
	SessionId     string `json:"session_id"`
	RemoteAddress string `json:"remote_addr"`
	StartTime     string `json:"start_time"`
	ReadBytesSum  int    `json:"read_bytes_sum"`
	WroteBytesSum int    `json:"wrote_bytes_sum"`
	Bitrate       int    `json:"bitrate"`
	ReadBitrate   int    `json:"read_bitrate"`
	WriteBitrate  int    `json:"write_bitrate"`
}
