package common

import (
	"github.com/dailymotion/allure-go/severity"
	"github.com/gavv/httpexpect/v2"
)

type GourdCase struct {
	CaseId            string //0
	Desc              string //1
	Api               string //2
	Method            string //3
	IsNeed            string //4
	Retry             int    //5
	Severity          severity.Severity
	Body              string
	Paths             map[string]string    //6
	Params            map[string]string    //indexParam
	Headers           map[string]string    //indexHeader
	Res               *httpexpect.Response //httpexpect中定义
	Status            int                  //用户期望返回的请求结果码 //indexStatus
	JsonExpect        map[string]string    //解析用户期望校验的json字段
	ExpectJsonExist   map[string]bool      //只验证非null，不验证内容
	ExpectJsonInt     map[string]int       //
	ExpectJsonBoolean map[string]bool      //
	DigestAuth        []string             // API Key - AK,SK , used in digest auth.
}

func MakeGourdCase() *GourdCase {
	return &GourdCase{
		IsNeed:            "Y",
		Retry:             -2, //表示csv文件中未设置retry字段
		Severity:          severity.Normal,
		Status:            200,
		Paths:             make(map[string]string),
		Params:            make(map[string]string),
		Headers:           make(map[string]string),
		JsonExpect:        make(map[string]string),
		ExpectJsonBoolean: make(map[string]bool),
		ExpectJsonExist:   make(map[string]bool),
		ExpectJsonInt:     make(map[string]int),
	}
}
