package com.bonus.material.device.domain.vo;

import com.bonus.material.device.domain.DevInfo;
import com.bonus.material.device.domain.MaDevQc;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * @author syruan
 */
@EqualsAndHashCode(callSuper = false)
@Data
@ToString
public class DevInfoVo extends DevInfo {

    private Integer pageNum;
    private Integer pageSize;
    private long parentId;

    @ApiModelProperty(value = "下单用户id")
    private Long orderUser;

    /* 装备组别 parent */
    @ApiModelProperty(value = "装备组别")
    private String groupName;

    @ApiModelProperty(value = "收藏id")
    private int collectId;

    @ApiModelProperty(value = "公司名称")
    private String companyName;

    @ApiModelProperty(value = "公司经营地址")
    private String operateAddress;

    @ApiModelProperty(value = "公司logo")
    private String companyLogoUrl;

    @ApiModelProperty(value = "公司入驻时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date companyCreateTime;

    @ApiModelProperty(value = "公司上架数量")
    private Long companyUpNum;

    @ApiModelProperty(value = "认证人电话")
    private String authPhone;

    @ApiModelProperty(value = "外观图集")
    private String[] pictures;

    @ApiModelProperty(value = "关键词")
    private String keyWord;

    @ApiModelProperty(value = "搜索数量")
    private Long searchNum;

    /**
     * 上下架id
     */
    @ApiModelProperty(value = "上下架id")
    private int upId;

    @ApiModelProperty(value = "搜索月租金最下值")
    private Integer monthLeasePriceMin;

    @ApiModelProperty(value = "搜索月租金最大值")
    private Integer monthLeasePriceMax;

    @ApiModelProperty(value = "搜索天租金最小值")
    private Integer dayLeasePriceMin;

    @ApiModelProperty(value = "搜索天租金最大值")
    private Integer dayLeasePriceMax;

    @ApiModelProperty(value = "搜索装备年份最小值")
    private Integer ageMin;

    @ApiModelProperty(value = "搜索装备年份最大值")
    private Integer ageMax;

    @ApiModelProperty(value = "搜索装备工作小时最小值")
    private Integer workingHoursMin;

    @ApiModelProperty(value = "搜索装备工作小时最大值")
    private Integer workingHoursMax;

    @ApiModelProperty(value = "搜索装备月租金排序 ASC or DESC")
    private String dayLeasePriceOrderBy;

    @ApiModelProperty(value = "搜索装备更新时间排序 ASC or DESC")
    private String updateTimeOrderBy;

    @ApiModelProperty(value = "装备分类级别")
    private String level;

    @ApiModelProperty(value = "省份名称")
    private String provinceStr;

    @ApiModelProperty(value = "市名称")
    private String cityStr;

    @ApiModelProperty(value = "区名称")
    private String areaStr;

    /* 装备组别 parent */
    @ApiModelProperty(value = "装备组别Id")
    private String groupId;

    @ApiModelProperty(value = "用户id")
    private Long userId;

    @ApiModelProperty(value = "装备一级类目Id")
    private String firstId;

    @ApiModelProperty(value = "装备一级类目名称")
    private String firstName;

    @ApiModelProperty(value = "装备二级类目Id")
    private String secondId;

    @ApiModelProperty(value = "装备二级类目名称")
    private String secondName;

    @ApiModelProperty(value = "装备三级类目Id")
    private String thirdId;

    @ApiModelProperty(value = "装备三级类目名称")
    private String thirdName;

    @ApiModelProperty(value = "是否加入预约车（0 是，1 否）")
    private Integer isBookCar;

    @ApiModelProperty(value = "出租记录信息")
    private List<LeaseVo> leaseList;

    @ApiModelProperty(value = "出租记录信息")
    private List<MaDevQc> qcList;

    @ApiModelProperty(value = "公司上架装备数量")
    private Integer devUapNum;

    @ApiModelProperty(value = "公司访问数量")
    private Integer companyVisitNum;

    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String startTime;

    @ApiModelProperty(value = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String endTime;

    @ApiModelProperty(value = "订单编码")
    private String orderCode;

    @ApiModelProperty(value = "检修预报警天数")
    private String maintenanceAlarmDay;

    @ApiModelProperty(value = "装备数")
    private Integer deviceNum;

    @ApiModelProperty(value = "订单数")
    private Integer orderNum;

    @ApiModelProperty(value = "订单金额")
    private BigDecimal cost;

    private String devicenewName;

    private String deviceId;

    private String deviceTypeName;

    private String proType;
    private String mainGx;
    private String childGx;
    private String devCategory;
    private String devSubcategory;
    private String devName;
    private String devModel;

    private String orderNumber;

    private String createUser;

    private String status;
    private String csId;

    private String devType;

    private String manageMode;

    private String maType;
    private String toolType;

    private Long deptId;

}
