package com.yiqi.order.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiqi.common.annotation.Excel;
import com.yiqi.order.domain.OrderClothAddress;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

@Data
public class OrderClothAppointmentVO {

    /** 订单编号 */
    @Excel(name = "订单编号")
    @ApiModelProperty("订单编号")
    private String orderNo;

    /** 省份 */
    @Excel(name = "省份")
    @ApiModelProperty("省份")
    private String province;

    /** 城市 */
    @Excel(name = "城市")
    @ApiModelProperty("城市")
    private String city;

    /** 区域 */
    @Excel(name = "区域")
    @ApiModelProperty("区域")
    private String area;

    /** 地址 */
    @Excel(name = "地址")
    @ApiModelProperty("地址")
    private String address;

    /** 地址明细（门牌号） */
    @Excel(name = "地址明细（门牌号）")
    @ApiModelProperty("地址明细（门牌号）")
    private String addressDetail;

    /** 预约时间（yyyy-MM-dd HH:mm） */
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty("预约时间")
    private Date appointmentTime;

    /** 预约件数 */
    @Excel(name = "预约件数")
    @ApiModelProperty("预约件数")
    private Integer appointmentCount;

    /** 取衣人 */
    @Excel(name = "取衣人id")
    @ApiModelProperty("取衣人")

    private Long takeClothAppUserId;

    /** 取衣人名称 */
    @Excel(name = "取衣人名称")
    @ApiModelProperty("取衣人名称")

    private String takeClothAppUserName;

    /** 取衣人手机号 */
    @Excel(name = "取衣人手机号")
    @ApiModelProperty("取衣人手机号")
    private String takeClothAppUserPhone;

    /** 联系人 */
    @Excel(name = "联系人")
    @ApiModelProperty("联系人")
    private String contactName;

    /** 联系人手机号 */
    @Excel(name = "联系人手机号")
    @ApiModelProperty("联系人手机号")
    private String contactPhone;

    /** 是否拆装 */
    @Excel(name = "是否拆装" , readConverterExp = "Y=是，N=否")
    @ApiModelProperty("是否拆装")
    private String isDisassemblyAndAssembly;

    /** 是否大件 */
    @Excel(name = "是否大件", readConverterExp = "Y=是，N=否")
    @ApiModelProperty("是否大件")
    private String isLargeItem;

    /** 订单状态衣 */
    @Excel(name = "订单状态", readConverterExp = "0=预约待取，1=已取货、待门店定价，2=已定价、待支付，3=已支付、待工厂取货，4=工厂已取货、洗衣中，5=洗衣完成、待送店，6=已到店、待送衣，7=送衣中，8=已送达、待评价，9=已完成，100=已取消")
    @ApiModelProperty("订单状态（0=预约待取，1=已取货、待门店定价，2=已定价、待支付，3=已支付、待工厂取货，4=工厂已取货、洗衣中，5=洗衣完成、待送店，6=已到店、待送衣，7=送衣中，8=已送达、待评价，9=已完成，100=已取消）")
    private String orderStatus;

    /**
     * 配送状态
     * {@link com.yiqi.common.enums.OrderDeliveryStatusEnum}
     */
    @Excel(name = "配送状态")
    @ApiModelProperty("配送状态")
    private String deliveryStatus;

    @Excel(name = "支付状态", readConverterExp = "0==待支付，1=支付成功，2=支付失败")
    @ApiModelProperty("支付状态 0：待支付 1: 支付成功 -1：支付失败")
    private String orderPayStatus;

    /** 收衣方式（0=到店，1=上门） */
    @Excel(name = "收衣方式", readConverterExp = "0=到店，1=上门")
    @ApiModelProperty("收衣方式（0=到店，1=上门）")
    private String takeClothWay;

    /** 取衣方式（0=到店，1=上门） */
    @Excel(name = "取衣方式", readConverterExp = "0=到店，1=上门")
    @ApiModelProperty("取衣方式（0=到店，1=上门）")
    private String sendClothWay;


    @Excel(name = "支付金额")
    @ApiModelProperty("支付金额")
    private BigDecimal payAmount;


    @ApiModelProperty("组织ID")
    private Long orgId;


    @ApiModelProperty("来源类型")
    private String sourceType;

    @Excel(name = "组织名称")
    @ApiModelProperty("组织名称")
    private String orgName;

    @Excel(name = "配送方式", readConverterExp = "0=同城配送，1=配送员，2=快递")
    @ApiModelProperty("配送方式（0=同城配送，1=配送员，2=快递）")
    private String deliveryWay;

    @Excel(name = "配送公司名称")
    @ApiModelProperty("配送公司名称")
    private String deliveryName;

    /**
     * 大件项目类型
     */
    private String largeItemType;

    @Excel(name = "预约地址")
    @ApiModelProperty("预约地址")
    private OrderClothAddress orderClothAddress;

}
