package com.ycwl.basic.puzzle.dto;

import lombok.Data;

import java.util.Map;

/**
 * 拼图生成请求DTO
 *
 * @author Claude
 * @since 2025-01-17
 */
@Data
public class PuzzleGenerateRequest {

    /**
     * 模板编码（必填）
     */
    private String templateCode;

    /**
     * 用户ID（可选）
     */
    private Long userId;

    /**
     * 业务类型（可选）
     */
    private String businessType;

    /**
     * 景区ID（可选）
     */
    private Long scenicId;

    /**
     * 人脸ID（可选，用于触发自动填充规则）
     */
    private Long faceId;

    /**
     * 动态数据（key为元素的elementKey，value为实际值）
     * 例如：{"userAvatar": "https://...", "userName": "张三", "orderNumber": "ORDER123"}
     * 注意：手动传入的dynamicData优先级高于自动填充的数据
     */
    private Map<String, String> dynamicData;

    /**
     * 输出格式（可选，默认PNG）
     * 支持：PNG、JPEG
     */
    private String outputFormat;

    /**
     * 图片质量（可选，默认90，范围0-100）
     * 仅对JPEG格式有效
     */
    private Integer quality;

    /**
     * 是否必须匹配填充规则才能生成（可选，默认false）
     * true: 如果没有规则匹配，抛出异常，不生成图片
     * false: 无论是否匹配规则，都继续生成（默认行为）
     */
    private Boolean requireRuleMatch = false;
}
