package main

import (
	"fmt"
	"os"

	"github.com/google/uuid"
	"gitstore.ru/tolikproh/mchstest/internal/cnst"
	"gitstore.ru/tolikproh/mchstest/internal/model"
	"gitstore.ru/tolikproh/mchstest/pkg/util"
)

func main() {
	fmt.Println("Загрузка вопросов для тестирования с сайта: https://digital.mchs.gov.ru/fgpn/simulator")
	uidMchs, err := uuid.Parse(util.InputTerminal("Необходимо ввести UUID сессии для начала загрузки"))
	util.Check(err, "ОШИБКА: формат UUID не верный. Зазрузка отменена.")
	filename := util.InputTerminal("Введите имя файла для сохранения")
	util.Check(err, "")

	var rN model.ReqNull
	var rA model.ReqAnswer
	f, err := os.Create(filename + ".json")
	util.Check(err, "")
	defer f.Close()

	body, err := util.ReqestToSiteJSON(rN, cnst.Url, uidMchs)
	util.Check(err, "")
	_, err = f.WriteString("[\n")
	util.Check(err, "")
	fmt.Print("Выполняется сохранение")
	for i := 0; i < 572; i++ {
		d := model.UnmarshalJSONToMTType(body)
		_, err = f.WriteString(model.MTTypeToJSON(d) + ",\n")
		util.Check(err, "")
		rA.Answer = d.ValidAnswer
		body, err = util.ReqestToSiteJSON(rA, cnst.Url, uidMchs)
		util.Check(err, "")
		fmt.Print(".")
	}
	d := model.UnmarshalJSONToMTType(body)
	_, err = f.WriteString(model.MTTypeToJSON(d) + "\n]")
	util.Check(err, "")
	fmt.Println("\nСохранение списка вопросов завершено в файле", filename+".json")

}
