package cn.iocoder.yudao.module.system.dal.dataobject.biz;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;

/**
 * 长者用药 DO
 *
 * @author 系统管理员
 */
@TableName("elderly_medication")
@KeySequence("elderly_medication_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MedicationDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    /**
     * 长者ID
     */
    private Long elderId;
    /**
     * 药品名称
     */
    @Schema(description = "药品名称")
    private String drugName;
    /**
     * 登记药品ID
     */
    @Schema(description = "登记药品ID")
    private Long byodRegistrationDrugId;
    /**
     * 剂量
     */
    @Schema(description = "剂量")
    private String dosage;
    /**
     * 频次
     */
    @Schema(description = "频次")
    private String frequency;
    /**
     * 给药时间
     */
    @Schema(description = "给药时间")
    private String administrationTime;
    /**
     * 给药途径
     */
    @Schema(description = "给药途径")
    private String administrationRoute;
    /**
     * 启用时间
     */
    @Schema(description = "启用时间")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private Date enabledTime;
    /**
     * 启用医生ID
     */
    private Long enableDoctorId;
    /**
     * 启用医生姓名
     */
    @Schema(description = "启用医生姓名")
    private String enableDoctorName;
    /**
     * 停用时间
     */
    @Schema(description = "停用时间")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private Date downTime;
    /**
     * 停用医护姓名
     */
    @Schema(description = "停用医护姓名")
    private String stopUsingMedicalName;
    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remarks;
    /**
     * 类型，1.长期用药 2.短期用药
     */
    @Schema(description = "类型，1.长期用药 2.短期用药")
    private Integer type;
    /**
     * 状态，0.正常 1.停用
     */
    @Schema(description = "状态，0.正常 1.停用")
    private Integer status;
    /**
     * 创建时间
     */
    private Date createdTime;
    /**
     * 创建人
     */
    private String createdBy;
    /**
     * 修改人
     */
    private String updateBy;
    /**
     * 修改时间
     */
    private Date updateTime;
}