package com.jeesharp.business.modules.member.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 会员导出VO
 *
 * @author jeesharp
 * @version 2024-01-24
 */
@Data
@Schema(description = "会员导出VO")
public class MemberExportVO {

    @ExcelProperty("会员编号")
    @Schema(description = "会员编号")
    private String memberNo;

    @ExcelProperty("会员昵称")
    @Schema(description = "会员昵称")
    private String nickname;

    @ExcelProperty("真实姓名")
    @Schema(description = "真实姓名")
    private String realName;

    @ExcelProperty("手机号")
    @Schema(description = "手机号")
    private String mobile;

    @ExcelProperty("性别")
    @Schema(description = "性别名称")
    private String genderName;

    @ExcelProperty("邮箱")
    @Schema(description = "邮箱")
    private String email;

    @ExcelProperty("生日")
    @DateTimeFormat("yyyy-MM-dd")
    @Schema(description = "生日")
    private LocalDate birthday;

    @ExcelProperty("会员等级")
    @Schema(description = "会员等级名称")
    private String levelName;

    @ExcelProperty("成长值")
    @Schema(description = "成长值")
    private Integer growthValue;

    @ExcelProperty("可用积分")
    @Schema(description = "可用积分")
    private Integer availablePoints;

    @ExcelProperty("累计消费金额")
    @Schema(description = "累计消费金额")
    private BigDecimal totalConsumeAmount;

    @ExcelProperty("累计消费次数")
    @Schema(description = "累计消费次数")
    private Integer totalConsumeCount;

    @ExcelProperty("账户余额")
    @Schema(description = "账户余额")
    private BigDecimal balance;

    @ExcelProperty("会员状态")
    @Schema(description = "会员状态名称")
    private String statusName;

    @ExcelProperty("会员来源")
    @Schema(description = "会员来源名称")
    private String sourceName;

    @ExcelProperty("是否实名")
    @Schema(description = "是否实名")
    private String isRealNameText;

    @ExcelProperty(value = "注册时间")
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @Schema(description = "注册时间")
    private LocalDateTime registerDate;

    @ExcelProperty(value = "最后登录时间")
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @Schema(description = "最后登录时间")
    private LocalDateTime lastLoginDate;
}
