package models

import (
	"context"
	"net/http"

	variable2 "git.listensoft.net/tool/jspkit/common/variable"
	"github.com/go-rod/rod"
)

type Result struct {
	NodeName       string              `json:"nodeName"`       //机器名
	ReqNo          string              `json:"reqNo"`          //唯一识别号
	Status         variable2.TaxStatus `json:"status"`         //任务状态 默认成功 不准动这个状态
	ErrLog         string              `json:"errLog"`         //不用管这个log
	BusinessImg    string              `json:"businessImg"`    //截图
	BusinessTime   string              `json:"businessTime"`   //截图时间
	BusinessStatus variable2.TaxStatus `json:"businessStatus"` //业务状态
	BusinessLog    string              `json:"b·usinessLog"`   //业务有错误时返回的提示语
	Amount         float64             `json:"amount"`         //申报金额
	AmountPaid     float64             `json:"amountPaid"`     //已扣款金额
	Data           any                 `json:"data"`           //采集的数据
	RobotName      string              `json:"robotName"`      // 执行的机器人名称
	CwbbDb         bool                // 财报代办已申报过
	SkipNb         bool                // 年报的税种都可以设置这个跳过检查 防止提前申报查不到
}

type TaxTask struct {
	OrgId            uint               `json:"orgId"`
	ComName          string             `json:"comName"`
	Period           string             `json:"period"` // 账期
	ReqNo            string             `json:"reqNo"`  // 任务唯一标识。用于结束任务
	TaskName         variable2.TaskName `json:"taskName"`
	LoginType        string             `json:"loginType"`
	TaxNo            string             `json:"tax_no"`
	Address          string             `json:"address"`
	IdType           string             `json:"idType"`
	IdNo             string             `json:"id_no"`
	Password         string             `json:"password"`
	Xzsf             string             `json:"xzsf"`
	Zzrxm            string             `json:"zzrxm"`
	Zzridno          string             `json:"zzridno"`
	Zzrmm            string             `json:"zzrmm"`
	ManagerName      string             `json:"managerName"`
	ManagerTel       string             `json:"managerTel"`
	ManagerIdNo      string             `json:"managerIdNo"`
	LinkName         string             `json:"linkName"`
	LinkTel          string             `json:"linkTel"`
	LinkIdNo         string             `json:"linkIdNo"`
	TaxCollectorName string             `json:"taxCollectorName"`
	TaxCollectorTel  string             `json:"taxCollectorTel"`
	TaxCollectorIdNo string             `json:"taxCollectorIdNo"`
	Tel              string             `json:"tel"`
	Data             string             `json:"data"`
	Result           Result             `json:"result"`
	Leave            int                // 申报优先级
}

type SbParams struct {
	BaseUrl   string
	Ctx       context.Context
	Page      *rod.Page
	Info      *CompanyInfo
	Task      *TaxTask
	C         *http.Client
	Browser   *rod.Browser
	OtherTask *TaxTask //存放企业所得税使用的财报task 小规模则存放定期定额task
}
