package com.yonge.cooleshow.biz.dal.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.yonge.cooleshow.biz.dal.entity.UserOrderDetail;
import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
import com.yonge.cooleshow.common.enums.EPaymentVersion;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * @Author: liweifan
 * @Data: 2022-03-30 13:53:51
 */
@Getter
@Setter
@ApiModel(value = "UserOrderDetailVo对象", description = "平台订单表查询视图对象")
public class UserOrderDetailVo extends UserOrderDetail {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("买家id ")
    private Long userId;

    @ApiModelProperty("订单id ")
    private Long orderId;

    @ApiModelProperty("用户类型 学生：STUDENT 老师 ：TEACHER")
    private ClientEnum orderClient;

    @ApiModelProperty("头像 ")
    private String avatar;

    @ApiModelProperty("用户名 ")
    private String username;

    @ApiModelProperty("星级 ")
    private Double starGrade;

    @ApiModelProperty(value = "冗余字段，用于传递参数用")
    private Object bizParam;
    @ApiModelProperty(value = "分润用户编号")
    private Long recomUserId;

    @ApiModelProperty("活动id")
    private Long activityId;

    @ApiModelProperty("活动奖品id")
    private Long rewardId;

    // 透传订单类型
    private OrderTypeEnum orderType;

    @ApiModelProperty("分账机构ID")
    private Long tenantId;


    @ApiModelProperty("支付厂商")
    private String paymentVendor;

    @ApiModelProperty("商品信息,返回订单列表或详情用")
    private BizInfo bizInfo;

    @ApiModelProperty("支付版本 ")
    private EPaymentVersion paymentVersion;
    @Data
    public  static class BizInfo implements Serializable {

        @ApiModelProperty("封面")
        private String bizCover;

        @ApiModelProperty("名称")
        private String bizName;

        @ApiModelProperty("描述")
        private String bizDesc;

        @ApiModelProperty("曲目上传人")
        private String uploadUser;


        @ApiModelProperty("曲目艺术家")
        private String composer;

        @ApiModelProperty("曲目数量")
        private Integer bizMusicCount;

        @ApiModelProperty("机构专辑有效时长")
        private Integer bizValidTime;

        @ApiModelProperty("购买关联记录ID")
        private Long recordId;
    }
}