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

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 com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 康复评估记录 DO
 *
 * @author 系统管理员
 */
@TableName("rehabilitation_assessments")
@KeySequence("rehabilitation_assessments_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RehabilitationAssessmentsDO  {

    /**
     * 评估记录ID（主键，自增）
     */
    @TableId
    private Integer assessmentId;
    /**
     * 长者ID
     */
    @Schema(description = "长者ID")
    private Integer elderId;

    @Schema(description = "长者姓名")
    private String elderName;
    /**
     * 评估时间
     */
    @Schema(description = "评估时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date assessmentTime;
    /**
     * 评估次数
     */
    @Schema(description = "评估次数")
    private Integer assessmentTimes;
    /**
     * 康复师
     */
    @Schema(description = "康复师")
    private String therapist;
    /**
     * 入住情况（入院诊断、护理等级等）
     */
    @Schema(description = "入住情况")
    private String admissionCondition;
    /**
     * 功能障碍（步行、平衡、肌力等评估结果）
     */
    @Schema(description = "功能障碍")
    private String dysfunction;
    /**
     * 康复方式（如：运动疗法）
     */
    @Schema(description = "康复方式")
    private String rehabilitationMethod;
    /**
     * 康复计划（具体训练项目、频率）
     */
    @Schema(description = "康复计划")
    private String rehabilitationPlan;
    /**
     * 预期效果
     */
    @Schema(description = "预期效果")
    private String expectedEffect;
    /**
     * 租户ID
     */
    private Long tenantId;


    private LocalDateTime createTime;
    /**
     * 最后更新时间
     */
    private LocalDateTime updateTime;

    @TableField(exist = false)
    private ElderlyInfoDO elderlyInfo;

    @TableField(exist = false)
    private String bedInfo;

}