package com.xinelu.applet.vo.nursingorder;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinelu.common.core.domain.BaseDomain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Objects;

/**
 * @Description 服务评价
 * @Author zhangheng
 * @Date 2022-10-18
 */

@Data
public class PatientOrder extends BaseDomain implements Serializable {

    /**
     * 被护理人信息表id
     */
    @ApiModelProperty(value = "被护理人信息表id")
    private Long patientId;

    /**
     * 预约订单编号
     */
    @ApiModelProperty(value = "订单编号")
    private String orderNo;

    /**
     * 预约订单状态
     */
    @ApiModelProperty(value = "订单状态")
    private String orderStatus;

    /**
     * 下单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 订单名称
     */
    @ApiModelProperty(value = "订单名称")
    private String orderName;

    /**
     * 护理站护理项目表id
     */
    @ApiModelProperty(value = "护理站护理项目表id")
    private Long nurseStationItemId;

    /**
     * 护理项目图片地址
     */
    @ApiModelProperty(value = "护理项目图片地址")
    private String pictureUrl;

    /**
     * 订单类型
     */
    private String orderType;

    /**
     * 预约服务满意度，一般：COMMONLY，满意：SATISFIED，不满意：DISSATISFIED
     */
    @ApiModelProperty(value = "预约服务满意度，一般：COMMONLY，满意：SATISFIED，不满意：DISSATISFIED")
    private String evaluateSatisfaction;

    /**
     * 商品订单综合评分，取值，1：代表1颗星，2：代表两颗星，3：代表三颗星，4：代表四颗星，5：代表五颗星
     */
    @ApiModelProperty(value = "商品订单综合评分，取值，1：代表1颗星，2：代表两颗星，3：代表三颗星，4：代表四颗星，5：代表五颗星")
    private Integer compositeScore;

    /**
     * 订单来源，泉医模块：SPRING_DOCTOR，家医模块：FAMILY_DOCTOR
     */
    private String orderSource;

    /**
     * 科室人员头像地址
     */
    private String personPictureUrl;

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        PatientOrder that = (PatientOrder) o;
        return Objects.equals(orderNo, that.orderNo);
    }

    @Override
    public int hashCode() {
        return Objects.hash(orderNo);
    }
}
