package com.ycwl.basic.image.watermark.edge;

import lombok.Builder;
import lombok.Data;

/**
 * 水印请求参数
 * 将原有的 WatermarkInfo（基于文件）转换为边缘渲染所需的格式（基于URL）
 */
@Data
@Builder
public class WatermarkRequest {
    /**
     * 原图URL
     */
    private String originalImageUrl;

    /**
     * 原图宽度（像素）
     */
    private int imageWidth;

    /**
     * 原图高度（像素）
     */
    private int imageHeight;

    /**
     * 二维码URL
     */
    private String qrcodeUrl;

    /**
     * 头像URL（可选）
     */
    private String faceUrl;

    /**
     * 景区名称
     */
    private String scenicLine;

    /**
     * 日期时间行
     */
    private String datetimeLine;

    /**
     * 四边偏移（像素），正数表示向内偏移
     */
    private Integer offsetTop;
    private Integer offsetBottom;
    private Integer offsetLeft;
    private Integer offsetRight;

    /**
     * 缩放倍数，默认1.0
     */
    private Double scale;

    /**
     * 输出格式：PNG / JPEG
     */
    @Builder.Default
    private String outputFormat = "JPEG";

    /**
     * 输出质量（0-100）
     */
    @Builder.Default
    private Integer outputQuality = 75;

    /**
     * 打印水印URL（根据图片方向已解析的单个URL）
     * 用于在原图上方、文字/二维码下方添加全屏水印叠加层
     */
    private String printWatermarkUrl;

    public double getScaleValue() {
        return scale != null ? scale : 1.0;
    }

    public int getOffsetTopValue() {
        return offsetTop != null ? offsetTop : 0;
    }

    public int getOffsetBottomValue() {
        return offsetBottom != null ? offsetBottom : 0;
    }

    public int getOffsetLeftValue() {
        return offsetLeft != null ? offsetLeft : 0;
    }

    public int getOffsetRightValue() {
        return offsetRight != null ? offsetRight : 0;
    }
}
