package main

import (
	"fmt"
	"strconv"

	"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 не верный. Завершение работы.")

	numMchsStr := util.InputTerminal("Необходимо ввести номер вопроса (с 1 до 572)")
	numMchs, err := strconv.Atoi(numMchsStr)
	util.Check(err, "ОШИБКА: необходимо ввести номер в диапазоне с 1 до 572. Завершение работы.")

	if numMchs <= 0 || numMchs > 572 {
		util.Check(nil, "ОШИБКА: не верный диапазон (должно быть с 1 до 572). Завершение работы.")
	}

	var rN model.ReqNull
	var rA model.ReqAnswer
	fmt.Print("Выполняется")
	body, _ := util.ReqestToSiteJSON(rN, cnst.Url, uidMchs)
	for i := 1; i < numMchs; i++ {
		d := model.UnmarshalJSONToMTType(body)
		fmt.Print(".")
		rA.Answer = d.ValidAnswer
		body, err = util.ReqestToSiteJSON(rA, cnst.Url, uidMchs)
		util.Check(err, "")
	}
	fmt.Println("\nРабота выполнена, пропущено", numMchs, "вопросов! Обновите страницу на сайте и продолжайте отвечать на подготовительные вопросы.")
}
