package com.zhyc.module.produce.breed.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhyc.common.annotation.Excel;
import com.zhyc.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 断奶记录对象 sc_wean_record
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ScWeanRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 羊只ID */
    @Excel(name = "羊只ID")
    private Long sheepId;

    /** 断奶日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "断奶日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date datetime;

    /** 断奶重量 */
    @Excel(name = "断奶重量")
    private BigDecimal weight;

    /** 是否留养 */
    @Excel(name = "是否留养")
    private String status;

    /** 技术员 */
    @Excel(name = "技术员")
    private String technician;

    /** 备注 */
    @Excel(name = "备注")
    private String comment;

    /** 电子耳号 */
    @Excel(name = "电子耳号")
    private String electronicTags;

    // --- 新增查询字段 ---

    /** 多耳号查询列表 */
    private List<String> allEarNumbers;

    /** 是否在群 (1是 0否) */
    private String isInHerd;

    /** 羊只类别 (对应 sheep_file 的 breed 字段) */
    private String sheepCategory;

    // --- 关联查询显示字段 ---

    @Excel(name = "耳号")
    private String earNumber;

    /** 品种 */
    @Excel(name = "品种")
    private String breed;

    /** 事件类型 */
    @Excel(name = "事件类型")
    private String eventType;

    /** 性别 */
    @Excel(name = "性别")
    private String gender;

    /** 父号 */
    @Excel(name = "父号")
    private String fatherNumber;

    /** 母号 */
    @Excel(name = "母号")
    private String motherNumber;

    /** 月龄 */
    @Excel(name = "月龄")
    private Integer monthAge;

    /** 出生重量 */
    @Excel(name = "出生重量")
    private BigDecimal birthWeight;

    /** 羊舍 */
    @Excel(name = "羊舍")
    private String sheepPen;

    /** 繁育状态 */
    @Excel(name = "繁育状态")
    private String breedingStatus;
}