package others_request

import (
	"git.sxidc.com/student-physical-examination/contract_lock_sdk/http"
	"os"
)

type CrossborderV2DocumentCreatebyfileRequest struct {
	// <ext>core:true</ext> 【签署文档】签署文档 【作用】 用于上传本地文件，文件上传后系统将自动将文档转换为PDF格式，方便后续进行签署 【传参】 1、支持的文件格式：pdf，doc，docx，wps，rtf，png，gif，jpg，jpeg，tiff，html，htm，xls，xlsx，txt，ofd，dwg，ppt，pptx。 2、若上传CAD图纸（dwg格式），请先开启【电子签章管理后台-自定义配置DWG_SWITCH】。 3、当上传的文档为PDF时，PDF的版本需要>1.3；上传签署文档大小限制可在【电子签章管理后台-电子用印设置-文件上传限制】进行配置。
	File *os.File `json:"file"`
	// <ext>core:true</ext> 【签署文档名称】签署文档名称 【作用】 用于传入上传的签署文档的名称
	Title string `json:"title"`
	// <ext>core:true</ext> 【签署文档类型】签署文档类型 【作用】 不同类型的文件转换方式不一样，需要传入类型进行文件转换，传入的类型需要与本地文件一致 【传参】 取值范围：pdf，doc，docx，wps，rtf，png，gif，jpg，jpeg，tiff，tif，html，htm，xls，xlsx，txt，ofd，dwg，ppt，pptx。
	FileType string `json:"fileType"`
	// <ext>core:true</ext> 【文件宽度】文件宽度 【传参】 1、单位：毫米。 2、文件宽度和文件高度必须同时传入才能生效，传入后将按照传入的值生成文档 3、如果值为负数则生成的文件和原始文件相比会上下翻转 4、不传值时按照如下规则处理： （1）图片：按照A4(210mm,297mm)的尺寸生成文档，同时根据图片宽高比，决定横竖版。宽<高时为竖版；宽>高时为横版 （2）xls、xlxs格式：按照A4尺寸生成文档，同时根据表格整体内容宽高比，决定横竖版。宽<高时为竖版；宽>高时为横版 （3）txt格式：按照A4尺寸生成竖版文档 （4）pdf、doc、docx、wps格式：按照文件本身的尺寸和横竖样式生成文档
	Width *float64 `json:"width,omitempty"`
	// <ext>core:true</ext> 【文档高度】文件高度 【传参】  1、单位：毫米。  2、传值不为空时（width同时不为空）按照传入的值生成文件 3、如果值为负数则生成的文件和原始文件相比会上下翻转 4、不传值时按照如下规则处理  （1）图片：按照A4的尺寸，同时根据图片宽高比，决定横竖版  宽<高：竖版；宽>高：横板 <br>（2）txt格式：按照A4(210,297)竖版尺寸生成签署文档  （3）xls、xlxs格式：按照A4尺寸，根据表格内容宽高比，决定横竖版； 整体内容 宽<高：竖版；整体内容宽>高：横板  （4）pdf、doc、docx、wps格式：按照文件本身的尺寸和横竖样式生成签署文档
	Height *float64 `json:"height,omitempty"`
	// 【文件旋转角度】文件旋转角度 【作用】 1、可旋转文档角度，以文档页面中心进行旋转。 2、对于含有电子签名的pdf文件不做处理。 3、正数表示顺时针旋转，负数表示逆时针旋转。 【传参】 取值范围：90 ，180，270，-90，-180，-270。
	Angle *int64 `json:"angle,omitempty"`
	// 【预览页展示下载按钮】预览页展示下载按钮 【传参】 取值范围：true（展示），false（不展示）；不传值默认为：false（不展示）。
	ViewDownload string `json:"viewDownload,omitempty"`
}

func (obj CrossborderV2DocumentCreatebyfileRequest) GetUrl() string {
	return "/cross-border/v2/document/createbyfile"
}

func (obj CrossborderV2DocumentCreatebyfileRequest) GetHttpParameter() *http.HttpParameter {
	parameter := http.NewPostHttpParameter()
	parameter.AddParam("title", obj.Title)
	parameter.AddParam("fileType", obj.FileType)
	parameter.AddParam("width", obj.Width)
	parameter.AddParam("height", obj.Height)
	parameter.AddParam("angle", obj.Angle)
	parameter.AddParam("viewDownload", obj.ViewDownload)
	parameter.AddFiles("file", obj.File)
	return parameter
}
