// package bot_web_conn -- сетевое соединение бота
package bot_web_conn

import (
	"net/http"
	"net/http/cookiejar"
	"time"

	"wartank/pkg/types"
	"wartank/server/serv_bots/warbot/warbot_net/bot_cookie"
)

// БотСетьСокет -- сетевое соединение бота
type БотВебСокет struct {
	клиент *http.Client         // Фактический клиент бота
	куки   bot_cookie.BotCookie // Кукисы бота
}

// НовБотСетьСокет -- возвращает новое сетевое соединение бота
func НовБотВебСокет() *БотВебСокет {
	клиент := &http.Client{
		Transport: &http.Transport{
			MaxIdleConns:      10,
			IdleConnTimeout:   30 * time.Second,
			DisableKeepAlives: false,
		},
		Jar:     nil,
		Timeout: time.Second * 10,
	}
	сам := &БотВебСокет{
		клиент: клиент,
		куки:   bot_cookie.NewBotCookie(),
	}
	сам.клиент.Jar, _ = cookiejar.New(nil)
	return сам
}

// ВебСокет -- возвращает сетевого клиента
func (сам *БотВебСокет) ВебСокет() *http.Client {
	return сам.клиент
}

// Куки -- возвращает куки клиента
func (сам *БотВебСокет) Куки() types.ИБотКуки {
	return &сам.куки
}
