package com.qs.mp.channel.domain;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.qs.mp.common.enums.ChannelGoodsOrderStatusEnum;
import com.qs.mp.common.enums.ChannelOrderStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @describe 经销商商品采购订单实体类
 * @auther quanshu
 * @create 2023-06-05 11:13:54
 */
@TableName("mp_channel_goods_order")
@Data
public class ChannelGoodsOrder implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty("主键")
    @TableId(value = "order_id", type = IdType.INPUT)
    private String orderId;

    /**
     * 渠道ID
     */
    @ApiModelProperty("渠道ID")
    @TableField("channel_id")
    private Long channelId;

    /**
     * 标题
     */
    @ApiModelProperty("标题")
    @TableField("title")
    private String title;

    /**
     * 订单金额
     */
    @ApiModelProperty("订单金额")
    @TableField("order_amt")
    private Integer orderAmt;

    /**
     * 优惠金额
     */
    @ApiModelProperty("优惠金额")
    @TableField("discount_amt")
    private Integer discountAmt;

    /**
     * 运费金额
     */
    @ApiModelProperty("运费金额")
    @TableField("freight_amt")
    private Integer freightAmt;

    /**
     * 实付金额
     */
    @ApiModelProperty("实付金额")
    @TableField("pay_amt")
    private Integer payAmt;

    /**
     * 订单类型1采购商品
     */
    @ApiModelProperty("订单类型1采购商品")
    @TableField("type")
    private Integer type;

    @ApiModelProperty("支付类型1支付宝,2微信,10支付宝直连")
    @TableField("pay_type")
    private String payType;

        /**
     * 订单状态，-1 已取消 0:待付款 1:待发货 2:待收货 3:已完成
     */
        @TableField("status")
        @ApiModelProperty("订单状态，-1 已取消 0:待付款 1:待发货 2:待收货 3:已完成")
        @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
        private ChannelGoodsOrderStatusEnum status;

    /**
     * 购买数量
     */
    @ApiModelProperty("购买数量")
    @TableField("order_num")
    private Integer orderNum;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    @TableField("memo")
    private String memo;

    /**
     * 收货人
     */
    @ApiModelProperty("收货人")
    @TableField("receiver")
    private String receiver;

    /**
     * 收货人电话
     */
    @ApiModelProperty("收货人电话")
    @TableField("tel")
    private String tel;

    /**
     * 收货地址-省
     */
    @ApiModelProperty("收货地址-省")
    @TableField("province")
    private String province;

    /**
     * 收货地址-市
     */
    @ApiModelProperty("收货地址-市")
    @TableField("city")
    private String city;

    /**
     * 收货地址-区
     */
    @ApiModelProperty("收货地址-区")
    @TableField("area")
    private String area;

    /**
     * 收货地址-详细
     */
    @ApiModelProperty("收货地址-详细")
    @TableField("address")
    private String address;

    /**
     * 物流ID
     */
    @ApiModelProperty("物流ID")
    @TableField("delivery_id")
    private String deliveryId;

    /**
     * 物流单号
     */
    @ApiModelProperty("物流单号")
    @TableField("delivery_flow_id")
    private String deliveryFlowId;

    /**
     * 发货时间
     */
    @ApiModelProperty("发货时间")
    @TableField("delivery_time")
    private Date deliveryTime;

    /**
     * 确认收货时间
     */
    @ApiModelProperty("确认收货时间")
    @TableField("confirm_time")
    private Date confirmTime;

    /**
     * 支付时间
     */
    @ApiModelProperty("支付时间")
    @TableField("pay_time")
    private Date payTime;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @TableField("created_time")
    private Date createdTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @TableField("updated_time")
    private Date updatedTime;


}