package com.bs.pm.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.bs.common.annotation.Excel;
import com.bs.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;

/**
 * 食材溯源对象 pm_food_traceability
 *
 * @author bs
 * @date 2025-10-05
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("pm_food_traceability")
@Data
public class PmFoodTraceability extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** id */
    @TableId(value = "id",type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Long id;

    /** 订单id */

    @Excel(name = "订单id")
    @ApiModelProperty(value = "订单id")
    private Long orderId;

    /** 订单货物id */

    @Excel(name = "订单货物id")
    @ApiModelProperty(value = "订单货物id")
    private Long orderGoodsId;

    /** 食材名称 */

    @Excel(name = "食材名称")
    @ApiModelProperty(value = "食材名称")
    private String goodsName;

    /** 食材批次号 */

    @Excel(name = "食材批次号")
    @ApiModelProperty(value = "食材批次号")
    private String batchNo;

    /** 溯源阶段 */

    @Excel(name = "溯源阶段")
    @ApiModelProperty(value = "溯源阶段")
    private String traceStep;

    /** 供应商id */

    @Excel(name = "供应商id")
    @ApiModelProperty(value = "供应商id")
    private Long supplierId;

    /** 检疫证明 */

    @Excel(name = "检疫证明")
    @ApiModelProperty(value = "检疫证明")
    private Long quarantineCert;

    /** 生产日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "生产日期")
    private Date productionDate;

    /** 保质期截止日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "保质期截止日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "保质期截止日期")
    private Date expiryDate;

    /** 入库时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "入库时间")
    private Date stockInTime;

    /** 出库时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "出库时间")
    private Date stockOutTime;

    /** 加工时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "加工时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "加工时间")
    private Date processTime;

    /** 是否召回 */

    @Excel(name = "是否召回")
    @ApiModelProperty(value = "是否召回")
    private String isRecall;

    /** 召回原因 */

    @Excel(name = "召回原因")
    @ApiModelProperty(value = "召回原因")
    private String recallReason;


}
