package com.hxhq.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @author zhangjing
 * @date 2026/01/28 15:28
 * @description 试剂库存推送信息
 */
@Data
@TableName("reagent_stock_push")
public class ReagentStockPush {
    /**
     * 试剂库存ID（主键）
     **/
    @TableField(value = "reagent_stock_push_id")
    private String reagentStockId;

    /**
     * 试剂名称
     **/
    @TableField(value = "name")
    private String name;

    /**
     * 试剂编号
     **/
    @TableField(value = "sn")
    private String sn;

    /**
     * 库存数量-主（支持小数）
     **/
    @TableField(value = "main_stock_count")
    private BigDecimal mainStockCount;

    /**
     * 库存单位-主
     **/
    @TableField(value = "main_stock_unit")
    private String mainStockUnit;

    /**
     * 库存数量-辅
     **/
    @TableField(value = "sub_stock_count")
    private BigDecimal subStockCount;

    /**
     * 库存单位-辅（如 mg、mL、g）
     **/
    @TableField(value = "sub_stock_unit")
    private String subStockUnit;

    /**
     * 换算比例
     **/
    @TableField(value = "conv_rate")
    private BigDecimal convRate;

    /**
     * 规格（如 100mL/瓶）
     **/
    @TableField(value = "specs")
    private String specs;

    /**
     * 生产厂家
     **/
    @TableField(value = "factory")
    private String factory;

    /**
     * 所属部门(如：临床检验分析部)
     **/
    @TableField(value = "department")
    private String department;

    /**
     * 批号
     **/
    @TableField(value = "batch_number")
    private String batchNumber;

    /**
     * 有效周期：
     长期有效、
     待定、
     有效期、
     失效期、
     复测日期
     **/
    @TableField(value = "validity_period")
    private String validityPeriod;

    /**
     * 有效、失效、复测日期(日期格式：yyyy-MM-dd)：
     1:长期有效、待定:没有效时间;
     2:有效周期：当天有效；
     3:失效期：当天无效
     4:复测日期：当天有效；
     **/
    @TableField(value = "validity_date")
    private LocalDate validityDate;

    /**
     * 存储位置（如 1126-2/室温A柜/A-3）
     **/
    @TableField(value = "storage_location")
    private String storageLocation;

    /**
     * 存储条件（如 -20℃避光）
     **/
    @TableField(value = "storage_conditions")
    private String storageConditions;

    /**
     * 配置日期（仅日期）
     **/
    @TableField(value = "configuration_date")
    private LocalDateTime configurationDate;

    /**
     * 数据创建（推送）时间
     **/
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    /**
     * 试剂管理分类
     **/
    @TableField(value = "reagent_manage_type")
    private String reagentManageType;

    /**
     * 大类
     **/
    @TableField(value = "main_category")
    private String mainCategory;

    /**
     * 亚类
     **/
    @TableField(value = "sub_category")
    private String subCategory;

    /**
     * 分装编号
     **/
    @TableField(value = "package_no")
    private String packageNo;

    /**
     * 物资系统-试剂主键id（唯一）
     **/
    @TableField(value = "ext_id")
    private String extId;
}
