package com.ruoyi.web.modules.industryservice.domain.vo;

import java.util.ArrayList;
import java.util.List;

/**
 * 养殖大户 Excel 导入结果 VO。
 * <p>
 * 成功时返回新增/更新条数；若存在失败明细，服务层会抛异常且整批不写库，
 * 此时前端通常只能看到异常信息。警告列表用于非阻断提示（当前导入逻辑可扩展使用）。
 * </p>
 */
public class LargeLivestockFarmerImportResultVo
{
    /** 本批新插入条数 */
    private int insertCount;

    /** 本批更新条数（唯一键已存在） */
    private int updateCount;

    /** 失败条数（与 failMessages 同步） */
    private int failCount;

    /** 失败明细，如「第6行[雅安镇/某村/某企业]: 村未识别」 */
    private List<String> failMessages = new ArrayList<>();

    /** 警告明细（不阻断导入时可展示） */
    private List<String> warnMessages = new ArrayList<>();

    public int getInsertCount()
    {
        return insertCount;
    }

    public void setInsertCount(int insertCount)
    {
        this.insertCount = insertCount;
    }

    public int getUpdateCount()
    {
        return updateCount;
    }

    public void setUpdateCount(int updateCount)
    {
        this.updateCount = updateCount;
    }

    public int getFailCount()
    {
        return failCount;
    }

    public void setFailCount(int failCount)
    {
        this.failCount = failCount;
    }

    public List<String> getFailMessages()
    {
        return failMessages;
    }

    public void setFailMessages(List<String> failMessages)
    {
        this.failMessages = failMessages;
    }

    public List<String> getWarnMessages()
    {
        return warnMessages;
    }

    public void setWarnMessages(List<String> warnMessages)
    {
        this.warnMessages = warnMessages;
    }

    /** 追加一条失败说明，并刷新 failCount */
    public void addFail(String message)
    {
        failMessages.add(message);
        failCount = failMessages.size();
    }

    /** 追加一条警告说明 */
    public void addWarn(String message)
    {
        warnMessages.add(message);
    }
}
