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

import java.util.List;
import com.ruoyi.web.modules.industryservice.domain.BizYakAsset;
import com.ruoyi.web.modules.industryservice.domain.BizYakFeedingRecord;
import com.ruoyi.web.modules.industryservice.domain.BizYakGrowthRecord;
import com.ruoyi.web.modules.industryservice.domain.BizYakPhysioSeries;
import com.ruoyi.web.modules.industryservice.domain.BizYakReproductionRecord;

/**
 * 第三方同步「单头牦牛」数据包。
 * <p>
 * 由 {@link com.ruoyi.web.modules.industryservice.support.YakEntryOpenApiMapper} 从入栏建档 OpenAPI 构建，
 * 经 {@link com.ruoyi.web.modules.industryservice.service.YakAssetBundleSyncTxService#persistBundle} 落库。
 * </p>
 *
 * <h3>子表 null 语义</h3>
 * <p>
 * 各 List 字段为 {@code null} 表示本次同步<strong>不覆盖</strong>对应子表；
 * 非 null（含空列表）则先删后插。当前入栏建档接口仅填充 {@link #asset}。
 * </p>
 */
public class YakAssetBundleDto
{
    /** 牦牛主表字段（biz_yak_asset） */
    private BizYakAsset asset;

    /** 第三方养殖场 ID（farmId 字符串），用于解析 pasture_id */
    private String thirdPartyPastureCode;

    /** 生理时序；null=不同步 */
    private List<BizYakPhysioSeries> physioSeries;

    /** 生长记录；null=不同步 */
    private List<BizYakGrowthRecord> growthRecords;

    /** 繁殖记录；null=不同步 */
    private List<BizYakReproductionRecord> reproductionRecords;

    /** 饲喂记录；null=不同步 */
    private List<BizYakFeedingRecord> feedingRecords;

    public BizYakAsset getAsset()
    {
        return asset;
    }

    public void setAsset(BizYakAsset asset)
    {
        this.asset = asset;
    }

    public String getThirdPartyPastureCode()
    {
        return thirdPartyPastureCode;
    }

    public void setThirdPartyPastureCode(String thirdPartyPastureCode)
    {
        this.thirdPartyPastureCode = thirdPartyPastureCode;
    }

    public List<BizYakPhysioSeries> getPhysioSeries()
    {
        return physioSeries;
    }

    public void setPhysioSeries(List<BizYakPhysioSeries> physioSeries)
    {
        this.physioSeries = physioSeries;
    }

    public List<BizYakGrowthRecord> getGrowthRecords()
    {
        return growthRecords;
    }

    public void setGrowthRecords(List<BizYakGrowthRecord> growthRecords)
    {
        this.growthRecords = growthRecords;
    }

    public List<BizYakReproductionRecord> getReproductionRecords()
    {
        return reproductionRecords;
    }

    public void setReproductionRecords(List<BizYakReproductionRecord> reproductionRecords)
    {
        this.reproductionRecords = reproductionRecords;
    }

    public List<BizYakFeedingRecord> getFeedingRecords()
    {
        return feedingRecords;
    }

    public void setFeedingRecords(List<BizYakFeedingRecord> feedingRecords)
    {
        this.feedingRecords = feedingRecords;
    }
}
