package com.sptg.pay.api.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sptg.common.core.entity.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * title: UserOrder
 * package: com.sptg.estate.api.entity
 * description: 用户订单
 *
 *
 *
 */
@Setter
@Getter
@TableName(value="user_order")
public class UserOrder extends BaseEntity {
    /**
     * 订单号
     */
    @TableField(value = "s_biz_order_no")
    private String bizOrderNo;
    /**
     * 订单类型：
     * FACE_ENABLE 人脸激活订单
     */
    @TableField(value = "s_order_type")
    private String orderType;

    /**
     * 订单描述：
     * 人脸支付--押金、人脸支付--套餐、人脸支付--试用，人脸支付--长期
     */
    @TableField(value = "s_description")
    private String description;

    /**
     * 应付款
     */
    @TableField(value="d_should_pay_amount")
    private BigDecimal shouldPayAmount;

    /**
     * 实际付款
     */
    @TableField(value = "d_actual_pay_amount")
    private BigDecimal actualPayAmount;

    /**
     *  抵扣金额(活动打折优惠价)
     */
    @TableField(value = "d_offset_amount")
    private BigDecimal offsetAmount;

    /**
     * 付款状态：
     * 1 未支付
     * 2 已支付
     */
    @TableField(value = "i_pay_status")
    private Integer payStatus;

    /**
     * 支付方式(支付宝：AliPay;微信：wxPay)
     */
    @TableField(value = "s_pay_type")
    private String payType;

    /**
     * 支付时间
     */
    @TableField(value = "t_pay_time")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 更新时间
     */
    @TableField(value = "t_update_date")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateDate;

    /**
     * 用户ID
     */
    @TableField(value = "l_user_id")
    private Long userId;

    /**
     * 商品ID
     */
    @TableField(value = "l_goods_id")
    private Long goodsId;

    /**
     * 是否收费：
     * 1：免费
     * 2：收费
     */
    @TableField(value = "i_is_charge")
    private Integer isCharge;

    /**
     * 第三方订单号
     */
    @TableField(value = "s_transaction_id")
    private String transactionId;

    /**
     * 小区名称
     */
    @TableField(value = "s_residential_name")
    private String residentialName;

    /**
     * 单元名称
     */
    @TableField(value = "s_unit_name")
    private String unitName;

    /**
     * 所属房间名称
     */
    @TableField(value = "s_room_name")
    private String roomName;

    /**
     * 姓名
     */
    @TableField(value = "s_name")
    private String name;

    /**
     * 手机号
     */
    @TableField(value = "s_tel")
    private String tel;

    /**
     * 是否退款：0：无退款，1：已退款
     */
    @TableField(value = "i_refund")
    private Integer refund;

    /**
     * 退款金额
     */
    @TableField(value = "d_refund_fee")
    private BigDecimal refundFee;

    /**
     * 退款时间
     */
    @TableField(value = "d_refund_date")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date refundDate;

    /**
     * 手机型号
     */
    @TableField(value = "s_phone_type")
    private String phoneType;

    /**
     * 费用类型
     */
    @TableField(value = "s_fee_type")
    private String feeType;

    /**
     * 费用规则
     */
    @TableField(value = "s_fee_rule")
    private String feeRule;

    /**
     * 地点（省市区，地址）
     */
    @TableField(value = "s_address")
    private String address;

    /**
     * 小区id
     */
    @TableField(value = "l_residential_id")
    private Long residentialId;

    /**
     * 单元id
     */
    @TableField(value = "l_unit_id")
    private Long unitId;

    /**
     * 房间id
     */
    @TableField(value = "l_room_id")
    private Long roomId;

    /**
     * 原始数据id
     */
    @TableField(value = "l_old_id")
    private String oldId;

    /*  以下不是数据库字段 */

    /**
     * 域名
     */
    @TableField(exist = false)
    private String fastDfsServer;

    /**
     * 脸部照片url（没有域名）
     */
    @TableField(exist = false)
    private String imageUri;
}
