package com.nanri.aiimage.modules.productrisk.model.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.nanri.aiimage.modules.productrisk.model.enums.ProductRiskCountryCode;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

@Data
@Schema(description = "Python 回传的单个店铺：成功时带五国表格数据；失败时仅填 error")
public class ProductRiskShopPayloadDto {

    @JsonProperty("shopName")
    @Schema(description = "店铺名称，用于与任务内结果行匹配（会按紫鸟规则规范化后比对）", example = "测试店铺")
    private String shopName;

    /**
     * 若不为空，表示该店铺处理失败，跳过后续 xlsx 生成。
     */
    @Schema(description = "非空时表示该店处理失败，写入 errorMessage，不生成 zip；为空则须配合 countries 生成文件")
    private String error;

    /**
     * key 为 {@link ProductRiskCountryCode} 的 JSON 名（DE、FR、ES、IT、UK）；写盘时映射为中文工作表。
     */
    @Schema(
            description = "五国数据：JSON 对象的键为枚举 ProductRiskCountryCode（DE、FR、ES、IT、UK），"
                    + "值为该国 sheet 的行列表；省略的键表示该国无数据行。")
    private Map<ProductRiskCountryCode, List<ProductRiskRowDto>> countries = new LinkedHashMap<>();
}
