package com.younike.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.younike.common.annotation.Excel;
import com.younike.system.domain.GoodsImage;
import com.younike.system.domain.Order;
import com.younike.system.domain.OrderVerificationRecord;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 会员订单详情对象
 *
 * @author dail
 * @date 2022-01-11
 */
@Data
public class MemberOrderDetailVo extends Order {

    private static final long serialVersionUID = 1L;

    /**
     * 商品id
     */
    private Long goodsId;

    /**
     * 商品图片列表
     */
    private List<GoodsImage> goodsImageList;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 商品单位
     */
    private String goodsUnit;

    /**
     * 商品单位名称
     */
    private String goodsUnitName;

    /**
     * 订单状态名称
     */
    private String orderStateName;

    /**
     * 服务人员头像
     */
    private String serverAvatar;

    /**
     * 服务人员id
     */
    private long serverId;

    /**
     * 服务人员名称
     */
    private String serverName;

    /**
     * 家政等级
     */
    private String serverLevel;

    /**
     * 家政等级名称
     */
    private String serverLevelName;

    /**
     * 好评率（4分及以上为好评）
     */
    private BigDecimal rate;

    /**
     * 工龄
     */
    private Integer serverAge;

    /**
     * 服务地址详情
     */
    private String address;

    /**
     * 门牌号
     */
    private String detailed;

    /**
     * 会员名称
     */
    private String memberName;

    /**
     * 会员手机号
     */
    private String phone;

    /**
     * 商品服务人员单价
     */
    private BigDecimal goodsServerPrice;

    /**
     * 商品数量
     */
    private Integer goodsCounts;

    /**
     * 追加服务数量
     */
    private String addCounts;

    /**
     * 服务类别id
     */
    private Long cateId;

    /**
     * 服务类别名称
     */
    private String cateName;

    /**
     * 父级服务类别名称
     */
    private String parentCateName;

    /**
     * 退款状态
     */
    private String refundState;

    /**
     * 退款状态名称
     */
    private String refundStateName;

    /**
     * 申请退款金额
     */
    private BigDecimal payMoney;

    /**
     * 实际退款金额
     */
    private BigDecimal refundMoney;

    /**
     * 申请退款原因
     */
    private String refundReason;

    /**
     * 退款处理结果
     */
    private String refundResult;

    /**
     * 商户电话
     */
    private String merchantPhone;

    /**
     * 评价id
     */
    private Long commentId;

    /**
     * 单次服务标准时长
     */
    private BigDecimal singleTime;

    /**
     * 是否已经追评(0:否;1:是)
     */
    private String isAddComment;

    /**
     * 商品是否下架(0:否;1:是)
     */
    private String isGoodsClosed;

    /**
     * 商户类型(0:商家;1:个人)
     */
    private Integer merchantType;

    /**
     * 服务id
     */
    private Long publishId;

    /**
     * 服务状态
     */
    private String publishState;

    /**
     * 其他单位名称
     */
    private String otherUnit;

    /**
     * 规格描述
     */
    private String specificationDesc;

    /**
     * 划线价
     */
    private BigDecimal scribingPrice;

    /**
     * 现价
     */
    private BigDecimal currentPrice;

    /**
     * 次数
     */
    private Integer times;

    /**
     * 预约时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalDateTime appointmentTime;

    /**
     * 预约状态(001：待核销；002：已核销；)
     * 预约状态
     */
    private String appointmentStatus;
    /**
     * 商家头像
     */
    private String merchantAvatar;

    /**
     * 订单核销记录集合
     */
    private List<OrderVerificationRecord> orderVerificationRecordList;

    /**
     * 控制显示（申请平台介入按钮）
     */
    private boolean controlShow;

    /**
     * 服务人员工作照
     */
    private String serverImgUrl;

}
