package com.tofly.watermeter.custom.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@ToString
@EqualsAndHashCode
public class ForeignQfkhjbxxDto implements Serializable {
    private static final long serialVersionUID = 1L;


    /**
     * 客户编号, type = IdType.INPUT
     */
    @NotBlank(message = "客户编号不允许为空")
    @ApiModelProperty(value = "客户编号")
    private String yhbh;
    /**
     * 客户姓名
     */
    @ApiModelProperty(value = "客户姓名")
    private String yhxm;
    /**
     * 客户地址
     */
    @ApiModelProperty(value = "客户地址")
    private String yhdz;
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    private String lxdh;
    /**
     * 联系人员
     */
    @ApiModelProperty(value = "联系人员")
    private String lxry;
    /**
     * 联系手机
     */
    @ApiModelProperty(value = "联系手机")
    private String lxsj;
    /**
     * 营业区域(存编码)
     */
    @ApiModelProperty(value = "营业区域(存编码)")
    private String yyqy;
    /**
     * 所属片区(存编码)
     */
    @ApiModelProperty(value = "所属片区(存编码)")
    private String cbpq;
    /**
     * 所属抄表本(存编码)
     */
    @ApiModelProperty(value = "所属抄表本(存编码)")
    private String cbb;
    /**
     * 客户状态(存编码)
     */
    @ApiModelProperty(value = "客户状态(存编码)；0：未启用；1：正常；2：报停；3：停水；4：锁定；5：关阀；9：销户")
    private String yhzt;
    /**
     * 缴费账户
     */
    @ApiModelProperty(value = "缴费账户")
    private String jfzh;
    /**
     * 账户状态(存编码)
     */
    @ApiModelProperty(value = "账户状态(存编码)")
    private String zhzt;
    /**
     * 账户余额
     */
    @ApiModelProperty(value = "账户余额")
    private Double zhye;
    /**
     * 供水合同
     */
    @ApiModelProperty(value = "供水合同")
    private String gsht;

    /**
     * 用水性质集合
     */
    @ApiModelProperty(value = "用水性质集合")
    private List<WaterPropertiesDto> yslxs;

    /**
     * 水表用途(存编码)
     */
    @ApiModelProperty(value = "水表用途(存编码)")
    private String sbyt;
    /**
     * 是否阶梯(0否，1是)
     */
    @ApiModelProperty(value = "是否阶梯(0否，1是)")
    private String sfjt;
    /**
     * 是否计量(0否, 1是)
     */
    @ApiModelProperty(value = "是否计量(0否, 1是)")
    private String sfjl;
    /**
     * 是否计费(0否 ，1是)
     */
    @ApiModelProperty(value = "是否计费(0否 ，1是)")
    private String sfjf;
    /**
     * 装表人员
     */
    @ApiModelProperty(value = "装表人员")
    private String zbry;
    /**
     * 水表表位（存编码)
     */
    @ApiModelProperty(value = "水表表位（存编码)")
    private String sbbw;
    /**
     * 是否用大户(0否，1是)
     */
    @ApiModelProperty(value = "是否用大户(0否，1是)")
    @JsonProperty("sf_ysdh")
    private String sfYsdh;
    /**
     * 抄表周期（存编码)
     */
    @ApiModelProperty(value = "抄表周期（存编码)单月（0）还是双月（1）")
    private String cbzq;
    /**
     * 应缴费日
     */
    @ApiModelProperty(value = "应缴费日")
    private String yjfr;
    /**
     * 性质类型(存编码)
     */
    @ApiModelProperty(value = "性质类型(存编码)")
    private String xzlx;
    /**
     * 是否单位客户(0否，1是)
     */
    @ApiModelProperty(value = "是否单位客户(0否，1是)")
    @JsonProperty("sf_dwyh")
    private String sfDwyh;
    /**
     * 是否开增值税(0否，1是)
     */
    @ApiModelProperty(value = "是否开增值税(0否，1是)")
    @JsonProperty("sf_kzzs")
    private String sfKzzs;
    /**
     * 开户日期
     */
    @ApiModelProperty(value = "开户日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date khrq;
    /**
     * 是否拖收客户(0否,1是)
     */
    @ApiModelProperty(value = "是否拖收客户(0否,1是)")
    @JsonProperty("sf_tsyh")
    private String sfTsyh;
    /**
     * 托收单位
     */
    @ApiModelProperty(value = "托收单位")
    private String tsdw;
    /**
     * 供水合同状态（0未签订，1已签订)
     */
    @ApiModelProperty(value = "供水合同状态（0未签订，1已签订)")
    @JsonProperty("gs_htzt")
    private String gsHtzt;
    /**
     * 水表表号
     */
    @ApiModelProperty(value = "水表表号")
    private String sbbh;
    /**
     * 水表厂家（存编码）
     */
    @ApiModelProperty(value = "水表厂家（存编码）")
    private String sbcj;
    /**
     * 水表类型（存编码）机械表、远传表、IC卡表、物联网表
     */
    @ApiModelProperty(value = "水表类型（存编码）机械表、远传表、IC卡表、物联网表")
    private String sblx;
    /**
     * 水表底度
     */
    @ApiModelProperty(value = "水表底度")
    private Long sbdd;

    @ApiModelProperty(value = "上次读数")
    private Long scds;
    /**
     * 水表口径(存编码)
     */
    @ApiModelProperty(value = "水表口径(存编码)")
    private String sbkj;
    /**
     * 安装方式(存编码)
     */
    @ApiModelProperty(value = "安装方式(存编码)")
    private String azfs;
    /**
     * 安装日期
     */
    @ApiModelProperty(value = "安装日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date azrq;
    /**
     * 最后换表日期
     */
    @ApiModelProperty(value = "最后换表日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty("zh_hbrq")
    private Date zhHbrq;
    /**
     * 建档日期
     */
    @ApiModelProperty(value = "建档日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date jdrq;
    /**
     * 最后修改日期
     */
    @ApiModelProperty(value = "最后修改日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty("zh_xgrq")
    private Date zhXgrq;

    /**
     * 是否欠费
     */
    @ApiModelProperty(value = "是否欠费")
    private String sfqf;

    /**
     * 欠费周期
     */
    @ApiModelProperty(value = "欠费周期")
    private String qfzq;

    /**
     * 欠费金额
     */
    @ApiModelProperty(value = "欠费金额")
    private Double qfje;

    /**
     * 操作类型(1新增,2信息变更修改,3停用(销户),4恢复)
     */
    @ApiModelProperty(value = "操作类型(1新增,2信息变更修改,3状态变更")
    private Integer type;
}
