package document_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 DocumentAddstampwatermarkRequest struct {
	// <ext>core:true;format:string</ext> 【签署文档id】签署文档id 【特别说明】 为签署文档指定印章水印时必填
	DocumentId string `json:"documentId"`
	// <ext>core:true</ext> 【水印类型】水印类型 【传参】 取值范围：SEAL_TYPE（印章类型），SEAL_TIME（用印时间），TEXT（文字水印）；不传值默认为：SEAL_TYPE（印章类型）。
	Type_ string `json:"type,omitempty"`
	// <ext>core:true</ext> 【用印时间格式】用印时间格式 【传参】 1、可参考SealWaterTimeFormat，不传值默认为：DASH 2、type（水印类型）为SEAL_TIME（用印时间）时传入。
	TimeFormat string `json:"timeFormat,omitempty"`
	// <ext>core:true</ext> 【文字水印内容】文字水印内容 【传参】 type（水印类型）为TEXT（文字水印）时传入。
	Content string `json:"content,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> 【透明度】透明度 【传参】 最小值：0（包含），最大值：1（包含）；不传值默认为：0.3。
	Transparency *float64 `json:"transparency,omitempty"`
	// <ext>core:true</ext> 【水印位置】水印位置 【传参】 取值范围：UPPER_LEFT（左上角），UPPER_RIGHT（右上角），UPPER_MIDDLE（顶部居中），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> 【旋转角度】旋转角度 【传参】 1、最小值：0（包含），最大值：180（包含）；不传值默认为：0。 2、单位：度。
	RotateAngle *float64 `json:"rotateAngle,omitempty"`
	// <ext>core:true</ext> 【水印在印章上或印章下】水印在印章上或印章下 【传参】 取值范围：under（水印在印章下），over（水印在印章上）；不传值默认为：over（水印在印章上）。
	TypeContent string `json:"typeContent,omitempty"`
	// <ext>core:true</ext> 【水印生效的印章id范围】水印生效的印章id范围 【传参】 1、格式：JSON字符串 2、不传值默认为：对文档内全部内部印章生效
	SealIds string `json:"sealIds,omitempty"`
}

func (obj DocumentAddstampwatermarkRequest) GetUrl() string {
	return "/document/addstampwatermark"
}

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