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

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yonge.cooleshow.common.enums.UserLockFlag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 学生表
 */
@Data
@TableName("student")
@ApiModel(value = "Student对象", description = "学生表")
public class Student implements Serializable {
	private static final long serialVersionUID = 1L;
    @TableId(value = "user_id_")
    private Long userId;

    @ApiModelProperty("学员声部 ")
	@TableField(value = "subject_id_")
    private String subjectId;

    @ApiModelProperty("会员等级 ")
	@TableField(value = "member_rank_setting_id_")
    private Long memberRankSettingId;

    @ApiModelProperty("有效期开始时间 ")
	@TableField(value = "membership_start_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date membershipStartTime;

    @ApiModelProperty("有效期结束时间 ")
	@TableField(value = "membership_end_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date membershipEndTime;

    @ApiModelProperty("小酷Ai连续使用天数 ")
	@TableField(value = "cloud_study_sequence_days_")
    private Integer cloudStudySequenceDays;

    @ApiModelProperty("小酷Ai最后使用日期 ")
	@TableField(value = "cloud_study_use_last_day_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date cloudStudyUseLastDay;

    @ApiModelProperty("锁定状态 0-正常， 1=锁定")
    @TableField(value = "lock_flag_")
    private UserLockFlag lockFlag;

    @ApiModelProperty("练习时长 ")
    @TableField(value = "train_time_")
    private Long trainTime;

    @ApiModelProperty("评测时长 ")
    @TableField(value = "evaluate_time_")
    private Long evaluateTime;

    @ApiModelProperty("帐号关联Id ")
    @TableField(value = "union_id_")
    private Long unionId;

    @ApiModelProperty("隐藏标识 ")
    @TableField(value = "hide_flag_")
    private Integer hideFlag;

	@TableField(value = "create_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

	@TableField(value = "update_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;

    @ApiModelProperty("机构ID ")
    @TableField(value = "tenant_id_")
    private Long tenantId;

    @ApiModelProperty("头像")
    @TableField(value = "avatar_")
    private String avatar;

    @ApiModelProperty("机构小组ID")
    @TableField(value = "tenant_group_id_")
    private Long tenantGroupId;

    @ApiModelProperty("IM绑定设备")
    @TableField(value = "im_device_id_")
    private String imDeviceId;

    @ApiModelProperty("专属客服ID")
    @TableField(value = "customer_id_")
    private Long customerId;

    @ApiModelProperty("专属IM客服ID")
    @TableField(value = "im_customer_id_")
    private String imCustomerId;

    @ApiModelProperty("折扣开始时间")
    @TableField(value = "discount_start_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date discountStartTime;

    @ApiModelProperty("折扣结束时间")
    @TableField(value = "discount_end_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date discountEndTime;

}