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

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;

import java.util.List;

@Data
@Schema(description = "品牌爬取结果提交请求。前端按文件分片提交不符合品牌数据和查询失败品牌数据；后端会基于创建任务时缓存的原始行数据生成最终结果文件。")
public class BrandCrawlResultRequest {

    @Schema(description = "品牌匹配方式。应与创建任务时使用的 strategy 保持一致。", example = "Terms")
    private String strategy = "Terms";

    @Valid
    @NotEmpty(message = "files 不能为空")
    @Schema(description = "本次提交的文件结果分片列表。每个分片只需要提交 fileUrl、chunkIndex、chunkTotal、totalLines、keptRows、invalidBrands、queryFailedBrands。invalidBrands 需包含品牌、国家、状态；主 sheet 删除时仅按品牌字段匹配。")
    private List<BrandCrawlResultFileDto> files;
}
