package cn.iocoder.yudao.module.member.controller.app.user.vo;

import cn.iocoder.yudao.module.member.dal.dataobject.userexpand.UserExpandDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

@Schema(description = "用户 APP - 用户个人信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AppMemberUserInfoRespVO {

    @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    private String nickname;

    @Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xxx.png")
    private String avatar;

    @Schema(description = "用户手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300")
    private String mobile;

    @Schema(description = "用户性别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer sex;

    @Schema(description = "积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Integer point;

    @Schema(description = "经验值", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Integer experience;

    @Schema(description = "用户等级")
    private Level level;

    @Schema(description = "是否成为推广员", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
    private Boolean brokerageEnabled;

    @Schema(description = "延伸", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
    private UserExpandDO userExpandDO;
    @Schema(description = "人脸", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long faceId;
    @Schema(description = "用户 App - 会员等级")
    @Data
    public static class Level {

        @Schema(description = "等级编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
        private Long id;

        @Schema(description = "等级名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
        private String name;

        @Schema(description = "等级", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
        private Integer level;

        @Schema(description = "等级图标", example = "https://www.iocoder.cn/yudao.jpg")
        private String icon;

    }

    /**
     * 余额
     */
    private BigDecimal money;

    /**
     * 消费类型
     */
    private String type;

    /**
     * 赠送金额
     */
    private BigDecimal giftAmount;

    /**
     * 现金金额
     */
    private BigDecimal cashAmount;

    /**
     * 微信充值金额
     */
    private BigDecimal wxAmount;

    /**
     * 欠款
     */
    private BigDecimal debtAmount;

    @Schema(description = "身份证")
    private String identityCard;

    @Schema(description = "地址")
    private String address;



}
