package com.qmth.sop.business.bean.result;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.sop.common.enums.DeviceStatusEnum;
import com.qmth.sop.common.enums.DeviceUsageTypeEnum;
import com.qmth.sop.common.enums.InOutTypeEnum;
import io.swagger.annotations.ApiModelProperty;

import java.util.List;

/**
 * @Description: 设备出入库记录查询结果
 * @Author: CaoZixuan
 * @Date: 2023-08-22
 */
public class DeviceInOutResult {
    @ApiModelProperty("流水号")
    private String serialNo;

    @ApiModelProperty("出入库记录id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long inOutId;
    @ApiModelProperty("服务单元id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long serviceUnitId;
    @ApiModelProperty("服务单元名称")
    private String serviceUnitName;
    @ApiModelProperty("用途类型")
    private DeviceUsageTypeEnum usageType;

    @ApiModelProperty("设备id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long deviceId;
    @ApiModelProperty("设备序列号")
    private String deviceSerialNo;
    @ApiModelProperty("设备编号")
    private String deviceNo;
    @ApiModelProperty("设备品牌")
    private String deviceBrand;
    @ApiModelProperty("设备型号")
    private String deviceModel;
    @ApiModelProperty("扫描量")
    private Integer scanCount;

    @ApiModelProperty("设备运行状态")
    private DeviceStatusEnum deviceStatus;

    @ApiModelProperty("出/入库时间")
    private Long inOutTime;

    @ApiModelProperty("登记人id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;
    @ApiModelProperty("登记人名称")
    private String userName;

    @ApiModelProperty("客户id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long customId;
    @ApiModelProperty("客户名称")
    private String customName;

    @ApiModelProperty("出库/入库")
    private InOutTypeEnum inOutType;

    @ApiModelProperty("当前地")
    private String location;

    @ApiModelProperty("当前地（回显）")
    @JsonIgnore
    private String locationArrTemp;

    @ApiModelProperty("当前地（回显）")
    private List<String> locationArr;

    @ApiModelProperty("发往地")
    private String address;

    @ApiModelProperty("发往地（回显）")
    @JsonIgnore
    private String addressArrTemp;

    @ApiModelProperty("发往地（回显）")
    private List<String> addressArr;

    @ApiModelProperty("供应商id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long supplierId;
    @ApiModelProperty("供应商名称")
    private String supplierName;

    @ApiModelProperty("快递单照片")
    private String basePhotoPath;

    @ApiModelProperty("默认数据")
    private Boolean defaultData;

    @ApiModelProperty("快递单号")
    private String expressNo;

    public String getSerialNo() {
        return serialNo;
    }

    public void setSerialNo(String serialNo) {
        this.serialNo = serialNo;
    }

    public String getDeviceSerialNo() {
        return deviceSerialNo;
    }

    public void setDeviceSerialNo(String deviceSerialNo) {
        this.deviceSerialNo = deviceSerialNo;
    }

    public Long getInOutId() {
        return inOutId;
    }

    public void setInOutId(Long inOutId) {
        this.inOutId = inOutId;
    }

    public Long getServiceUnitId() {
        return serviceUnitId;
    }

    public void setServiceUnitId(Long serviceUnitId) {
        this.serviceUnitId = serviceUnitId;
    }

    public String getServiceUnitName() {
        return serviceUnitName;
    }

    public void setServiceUnitName(String serviceUnitName) {
        this.serviceUnitName = serviceUnitName;
    }

    public DeviceUsageTypeEnum getUsageType() {
        return usageType;
    }

    public void setUsageType(DeviceUsageTypeEnum usageType) {
        this.usageType = usageType;
    }

    public Long getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(Long deviceId) {
        this.deviceId = deviceId;
    }

    public String getDeviceNo() {
        return deviceNo;
    }

    public void setDeviceNo(String deviceNo) {
        this.deviceNo = deviceNo;
    }

    public String getDeviceBrand() {
        return deviceBrand;
    }

    public void setDeviceBrand(String deviceBrand) {
        this.deviceBrand = deviceBrand;
    }

    public String getDeviceModel() {
        return deviceModel;
    }

    public void setDeviceModel(String deviceModel) {
        this.deviceModel = deviceModel;
    }

    public Integer getScanCount() {
        return scanCount;
    }

    public void setScanCount(Integer scanCount) {
        this.scanCount = scanCount;
    }

    public DeviceStatusEnum getDeviceStatus() {
        return deviceStatus;
    }

    public void setDeviceStatus(DeviceStatusEnum deviceStatus) {
        this.deviceStatus = deviceStatus;
    }

    public Long getInOutTime() {
        return inOutTime;
    }

    public void setInOutTime(Long inOutTime) {
        this.inOutTime = inOutTime;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Long getCustomId() {
        return customId;
    }

    public void setCustomId(Long customId) {
        this.customId = customId;
    }

    public String getCustomName() {
        return customName;
    }

    public void setCustomName(String customName) {
        this.customName = customName;
    }

    public InOutTypeEnum getInOutType() {
        return inOutType;
    }

    public void setInOutType(InOutTypeEnum inOutType) {
        this.inOutType = inOutType;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getLocationArrTemp() {
        return locationArrTemp;
    }

    public void setLocationArrTemp(String locationArrTemp) {
        this.locationArrTemp = locationArrTemp;
    }

    public List<String> getLocationArr() {
        return locationArr;
    }

    public void setLocationArr(List<String> locationArr) {
        this.locationArr = locationArr;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddressArrTemp() {
        return addressArrTemp;
    }

    public void setAddressArrTemp(String addressArrTemp) {
        this.addressArrTemp = addressArrTemp;
    }

    public List<String> getAddressArr() {
        return addressArr;
    }

    public void setAddressArr(List<String> addressArr) {
        this.addressArr = addressArr;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getBasePhotoPath() {
        return basePhotoPath;
    }

    public void setBasePhotoPath(String basePhotoPath) {
        this.basePhotoPath = basePhotoPath;
    }

    public Boolean getDefaultData() {
        return defaultData;
    }

    public void setDefaultData(Boolean defaultData) {
        this.defaultData = defaultData;
    }

    public String getExpressNo() {
        return expressNo;
    }

    public void setExpressNo(String expressNo) {
        this.expressNo = expressNo;
    }
}
