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

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.zhyc.common.annotation.Excel;
import com.zhyc.common.core.domain.BaseEntity;
import java.util.Date;

/**
 * 配种记录对象 sc_breed_record
 *
 * @author ruoyi
 * @date 2025-07-23
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ScBreedRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

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

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

    /** 配种公羊id */
    @Excel(name = "配种公羊id")
    private String ramId;

    /** 配种母羊id */
    @Excel(name = "配种母羊id")
    private String eweId;

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

    /** 繁殖用药/耗精量 */
    @Excel(name = "耗精量")
    private String breedDrugs;

    /** 配种方式 1-同期发情 2-本交 */
    @Excel(name = "配种方式", readConverterExp = "1=同期发情,2=本交")
    private Integer breedType;

    // ============ 显示字段 ============

    /** 母羊耳号 */
    @Excel(name = "耳号")
    private String eweManageTags;

    /** 母羊品种 */
    @Excel(name = "品种")
    private String eweVariety;

    /** 公羊耳号 */
    @Excel(name = "配种公羊")
    private String ramManageTags;

    /** 公羊品种 */
    @Excel(name = "配种公羊品种")
    private String ramVariety;

    /** 胎次 */
    @Excel(name = "胎次")
    private Integer eweParity;

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

    /** 羊舍名称 */
    @Excel(name = "当前羊舍")
    private String eweSheepfoldName;

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

    /** 是否性控 */
    @Excel(name = "是否性控", readConverterExp = "0=否,1=是")
    private Integer eweControlled;

    /** 羊只备注 */
    @Excel(name = "羊只备注")
    private String eweComment;

    /** 牧场名称 */
    @Excel(name = "所在牧场")
    private String ranchName;

    /** 配种方式显示 */
    @Excel(name = "配种方式")
    private String matingType;

    /** 羊只类别 */
    @Excel(name = "配种时羊只类别")
    private String sheepType;

    /** 配次 */
    @Excel(name = "配次")
    private Integer matingCount;

    /** 发情后配种时间 */
    @Excel(name = "发情后配种时间(小时)")
    private Long timeSincePlanning;

    /** 牧场ID */
    private Long ranchId;

    /** 配种计划ID */
    private Long planId;

    // ============ 新增孕检相关字段 ============

    /** 孕检日期 */
    @Excel(name = "孕检日期")
    private Date pregnancyCheckDate;

    /** 孕检结果 */
    @Excel(name = "孕检结果")
    private String pregnancyResult;

    /** 孕检方式 */
    @Excel(name = "孕检方式")
    private String pregnancyWay;

    /** 胎数 */
    @Excel(name = "胎数")
    private Integer fetusCount;

    /** 孕检技术员 */
    @Excel(name = "孕检技术员")
    private String pregnancyTechnician;

    /** 孕检备注 */
    @Excel(name = "孕检备注")
    private String pregnancyRemark;

    /** 孕检记录ID */
    private Long pregnancyRecordId;

    /** 配种到孕检间隔天数 */
    @Excel(name = "配种到孕检间隔(天)")
    private Integer daysToPregnancyCheck;

    /** 是否已孕检 */
    @Excel(name = "是否已孕检", readConverterExp = "0=否,1=是")
    private Integer isPregnancyChecked;
}