package seal_request

import (
	"encoding/json"
	"git.sxidc.com/student-physical-examination/contract_lock_sdk/http"
	"git.sxidc.com/student-physical-examination/contract_lock_sdk/model/common"
)

type SealApplyWatermarkRequest struct {
	// <ext>core:true;format:string</ext> 【用印文档id】用印文档id 【作用】 需要添加水印的用印文档
	DocumentId *int64 `json:"documentId"`
	// <ext>core:true</ext> 【水印类型】水印类型 【传参】 取值范围：TEXT（文字水印），IMAGE（图片水印）；不传值默认为：TEXT（文字水印）。
	Type_ string `json:"type,omitempty"`
	// <ext>core:true</ext> 【文字水印内容】文字水印内容 【传参】 当type（水印类型）为TEXT（文字水印）时必填。
	Content string `json:"content,omitempty"`
	// <ext>core:true;format:base64</ext> 【水印图片】水印图片 【传参】 1、Base64格式。 2、type（水印类型）为IMAGE（图片水印）时必填。
	ImageBase64 string `json:"imageBase64,omitempty"`
	// <ext>core:true</ext> 【字体大小】字体大小 【传参】 最小值：0（不包含）；不传值默认为：16。
	FontSize *int64 `json:"fontSize,omitempty"`
	// <ext>core:true;format:color</ext> 【字体颜色】字体颜色 【传参】 RGB颜色(16进制)。不传值默认为：#999999。
	Color string `json:"color,omitempty"`
	// <ext>core:true</ext> 【旋转角度】旋转角度 【传参】 1、最小值：0（包含），最大值：180（包含）；不传值默认为：0。 2、文字图片水印均可使用。
	RotateAngle *float64 `json:"rotateAngle,omitempty"`
	// <ext>core:true</ext> 【透明度】透明度 【传参】 1、最小值：0（包含），最大值：1（包含）；不传值默认为：0.3。 2、文字图片水印均可使用。
	Transparency *float64 `json:"transparency,omitempty"`
	// <ext>core:true</ext> 【图片缩放比例】图片缩放比例 【作用】 1、调整水印的图片大小，支持按比例缩小放大 2、水印图片默认宽度为 116像素 * 0.5=58像素，高度等比例缩放。可传入参数进行放大缩小，将按照（116 像素* 缩放比例）确认宽度，再将高度等比例缩放 【传参】 1、最小值：0（不包含）；不传值默认为：0.5。 2、大于1放大，小于1缩小。
	Scaling *float64 `json:"scaling,omitempty"`
	// <ext>core:true</ext> 【水印位置】水印位置 【传参】 取值范围：UPPER_LEFT（左上角），UPPER_RIGHT（右上角），LOWER_LEFT（左下角），LOWER_RIGHT（右下角），MIDDLE_CENTER（居中），TILE（平铺），FILL（填充），CUSTOM（坐标指定位置、需传入customLocation指定位置）；不传值默认为：MIDDLE_CENTER（居中）。
	Location       string                 `json:"location,omitempty"`
	CustomLocation *common.CustomLocation `json:"customLocation,omitempty"`
	// <ext>core:true</ext> 【水印环绕方式】水印环绕方式 【传参】 取值范围：over（浮于文字上方），under（衬于文字下方）；不传值默认为：over（浮于文字上方）。
	TypeContent string `json:"typeContent,omitempty"`
	// <ext>core:true</ext> 【水印应用页面】水印应用页面 【传参】 取值范围：EVERY_PAGE（所有文件所有页），HOME_PAGE（所有文件首页），FINAL_PAGE（所有文件末页），ODD_PAGES（所有文件奇数页），EVEN_PAGES（所有文件偶数页），CUSTOM_PAGES（自定义页面、需传入customPages指定页面范围）；不传值默认为：EVERY_PAGE（所有文件所有页）。
	WaterMarkPages string `json:"waterMarkPages,omitempty"`
	// <ext>core:true</ext> 【水印页面范围】水印页面范围 【传参】 1、可输入页码或页码范围，多组页码或页码范围之间用英文逗号(,)分隔，例如：2,4~7,8~11。 2、当waterMarkPages（应用页面）为CUSTOM_PAGES（自定义页面）时必填。
	CustomPages string `json:"customPages,omitempty"`
	// <ext>core:true</ext> 【水印平铺密度】水印平铺密度 【传参】 1、最小值：1（包含），最大值：999（包含）；不传值默认为：30（适中）。 2、可参考：270（稀疏），30（适中），10（密集）。 3、当location（水印位置）为TILE（平铺）时生效。
	CustomDensity *int64 `json:"customDensity,omitempty"`
}

func (obj SealApplyWatermarkRequest) GetUrl() string {
	return "/seal/apply/watermark"
}

func (obj SealApplyWatermarkRequest) GetHttpParameter() *http.HttpParameter {
	parameter := http.NewPostHttpParameter()
	jsonBytes, _ := json.Marshal(obj)
	parameter.SetJsonParamer(string(jsonBytes))
	return parameter
}
