package com.hzs.sale.order.param;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.hzs.common.domain.sale.order.SaOrderItems;
import com.hzs.member.account.dto.MemberAmountDTO;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Description:  空单注册表单
 * @Author: yuhui
 * @Time: 2022/10/19 9:22
 * @Classname: OrderBlankRegParams
 * @PackageName: com.hzs.sale.order.param
 */
@Data
public class OrderBlankRegParams {




    /**
     * 申请级别
     */
    @NotNull(message = "用户等级不能为空")
    private Integer userLevel;


    /**
     * 注册金额
     */
    @NotNull(message = "注册价格不能为空")
    private BigDecimal registerPrice;

    /**
     * 注册业绩
     */
    @NotNull(message = "注册pv不能为空")
    private BigDecimal registerPv;


    /**
     * 推荐编号
     */
    @NotBlank(message = "推荐编号不能为空")
    private String parent;
    /**
     * 安置编号
     */
    @NotBlank(message = "安置编号不能为空")
    private String placeParent;


    /**
     * 安置位置
     */
    @NotNull(message = "安置部门不能为空")
    private Integer placeDept;

    /**
     * 会员姓名
     */
    @NotBlank(message = "用户名称不能为空")
    private String memberName;


    /**
     * 联系方式
     */
    @NotBlank(message = "用户手机不能为空")
    private String phone;

    /**
     * 用户奖衔（真实奖衔）
     */
    private Integer userAwards;

    /**
     * 是否结算 0 是 1 否   不太懂
     */
    @NotBlank(message = "是否结算必选")
    private String isSettlement;

    /**
     * 回填金额
     */
    @NotNull(message = "回填金额必填")
    private BigDecimal backfillPrice;

    /**
     * 证件类型   不太懂(无字段)
     */
    private String idType;

    /**
     * 证件号码
     */
    private String idCard;

    /**
     * 预售状态
     */
    private Integer preSaleStatus;

    /**
     * 发货方式
     */
    private Integer  deliveryWay;
    /**
     * 运输方式
     */
    private Integer tranType;

    /**
     * 银行名称
     */
    private String bankName;

    /**
     * 银行外键
     */
    private Integer bankId;

    /**
     * 银行卡号
     */
    private String bankCard;

    /**
     * 开支支行
     */
    private String openingBranch;

    /**
     * 开户姓名
     */
    private String openingName;
    /**
     * 预留电话
     */
    private String reservedPhone;
    /**
     * 邮箱
     */
    private String email;


    /**
     * 结算业绩
     */
    private BigDecimal settleAccounts;
     /**
     * 传输业绩
     */
    private BigDecimal transferAccounts;
    /**
     * 订单类型
     */
    private Integer orderType;

    /**
     * 报单人编号
     */
    @NotBlank(message = "报单人编号不能为空")
    private String applicantNo;





    /**
     * 自然国
     */
    private Integer pkCountry;
    /**
     * 结算国
     */
    private Integer pkSettleCountry;





  // 收货信息
    /**
     * 收货人
     */
    private String receivingName;
    /**
     * 收货电话
     */
    private String receivingPhone;

    /**
     * 省
     */
    private Integer province;

    /**
     * 市
     */
    private Integer city;

    /**
     * 县
     */
    private Integer county;

    /**
     * 详细地址
     */
    @NotBlank(message = "详细地址必填")
    private String address;
    /**
     * 备注
     */
    private String remark;

    /**
     * 报单中心编号
     */

    private Long centerCodeId;

    /**
     * 订单项
     */
    private List<SaOrderItems> orderItems;


    /**
     * 签呈流程类型（1 免签呈 2免付费 3免签呈+免付费 4 需要签呈需要付费）
     */
    private Integer processType;

    /**
     * 审核状态  2  待审核  4 已驳回   5 已完成(审核成功)  枚举 ： EApproveStatus
     */
    private Integer approveStatus;

    /**
     * 最大次数
     */
    private Integer changeNumber;
    /**
     * 费用
     */
    private BigDecimal cost;
    /**
     * 扣款币种类型
     */
    private Integer pkAccount;

    /**
     * 签呈业务类型（EApprovalBusiness）
     */
    private Integer approvalBusiness;

    /**
     * 签呈类型（ESignType）
     */
    private Integer signType;
    /**
     * 签呈附件
     */
    private List<String> fileList;
    /**
     * 会员手续费
     */
    List<MemberAmountDTO> memberAmountDTOList;
}
