package com.jojubanking.boot.module.system.controller.admin.reserve8.vo;

import lombok.*;

import java.math.BigDecimal;
import java.util.*;
import io.swagger.annotations.*;
import com.jojubanking.boot.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;

import static com.jojubanking.boot.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel("管理后台 - 预约挂号分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class Reserve8PageReqVO extends PageParam {

    @ApiModelProperty(value = "用户ID")
    private Integer userId;

    @ApiModelProperty(value = "就诊卡id")
    private Integer cardId;

    @ApiModelProperty(value = "病人名称")
    private String name;

    @ApiModelProperty(value = "科室名称")
    private String ksmc;

    @ApiModelProperty(value = "医生名称")
    private String ysmc;

    @ApiModelProperty(value = "院区 ID")
    private String subHospitalID;

    @ApiModelProperty(value = "票据编号")
    private String reptNum;

    @ApiModelProperty(value = "操作类型")
    private Integer lockType;

    @ApiModelProperty(value = "订单 ID")
    private String hisOrderNO;

    @ApiModelProperty(value = "排班 ID")
    private String scheduleId;

    @ApiModelProperty(value = "医生编码")
    private String doctorCode;

    @ApiModelProperty(value = "科室编码")
    private String departCode;

    @ApiModelProperty(value = "分时 ID")
    private String parTimeId;

    @ApiModelProperty(value = "锁号时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String[] lockTime;

    @ApiModelProperty(value = "患者 ID")
    private String patientId;

    @ApiModelProperty(value = "手机号码")
    private String mobile;

    @ApiModelProperty(value = "就诊序号")
    private String serialNo;

    @ApiModelProperty(value = "就诊地址")
    private String location;

    @ApiModelProperty(value = "号票编号")
    private String ticketNo;

    @ApiModelProperty(value = "取号确认订单ID")
    private String orderNo;

    @ApiModelProperty(value = "取号确认时间段")
    private String timeInterval;

    @ApiModelProperty(value = "出诊日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String[] registerdate;

    @ApiModelProperty(value = "诊查费")
    private BigDecimal clinicFee;

    @ApiModelProperty(value = "挂号费")
    private BigDecimal registrationFee;

    @ApiModelProperty(value = "收费性质")
    private Integer payNature;

    @ApiModelProperty(value = "支付方式")
    private String payType;

    @ApiModelProperty(value = "交易 ID")
    private String powerTranID;

    @ApiModelProperty(value = "交易 卡号(扫码支付)")
    private String powerTranCARD;

    @ApiModelProperty(value = "MISPOS终端号")
    private String terminalId;

    @ApiModelProperty(value = "自费支付金额")
    private BigDecimal zFAmount;

    @ApiModelProperty(value = "医保账户金额")
    private BigDecimal yBZHAmount;

    @ApiModelProperty(value = "医保统筹金额")
    private BigDecimal yBTCAmount;

    @ApiModelProperty(value = "医保结算信息")
    private String yBOutMsg;

    @ApiModelProperty(value = "HIS 工号")
    private String hisOperNum;

    @ApiModelProperty(value = "交易检索号(银行)")
    private String referNo;

    @ApiModelProperty(value = "token")
    private String token;

    @ApiModelProperty(value = "允许退号标志  N 不允许 Y 允许")
    private String appFlag;

    @ApiModelProperty(value = "单据状态 1 已退费 0 正常")
    private Integer appStatus;

    @ApiModelProperty(value = "1 预约挂号 2 今日挂号")
    private Integer appType;

    @ApiModelProperty(value = "提交时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] ctime;

    @ApiModelProperty(value = "修改时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] utime;

    private String startDate;
    private String endDate;
}
