package com.starry.admin.modules.custom.module.vo;

import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import lombok.Data;

/**
 * 顾客分页查询返回对象
 *
 * @author admin
 * @since 2024/5/14 下午7:47
 **/
@Data
@ApiModel(value = "顾客返回数据", description = "顾客信息的返回数据")
public class PlayCustomUserReturnVo {
    /**
     * UUID
     */
    @ApiModelProperty(value = "顾客ID", example = "1")
    private String id;

    /**
     * 租户ID
     */
    @ApiModelProperty(value = "租户ID", example = "tenant123", notes = "系统租户标识")
    private String tenantId;

    /**
     * 用户的标识，对当前公众号唯一
     */
    @ApiModelProperty(value = "OpenID", example = "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", notes = "微信用户的唯一标识")
    private String openid;

    /**
     * 顾客昵称
     */
    @ApiModelProperty(value = "昵称", example = "张三")
    private String nickname;

    /**
     * 顾客性别（0:未知;1:男,2:女）
     */
    @ApiModelProperty(value = "性别", example = "1", notes = "0:未知;1:男;2:女")
    private Integer sex;

    /**
     * 头像
     */
    @ApiModelProperty(value = "头像", example = "https://example.com/avatar.jpg")
    private String avatar;

    /**
     * 手机号码
     */
    @ApiModelProperty(value = "手机号码", example = "13800138000")
    private String phone;

    /**
     * 微信号码
     */
    @ApiModelProperty(value = "微信号", example = "zhangsan123")
    private String weiChatCode;

    /**
     * 所在国家
     */
    @ApiModelProperty(value = "国家", example = "中国")
    private String country;

    /**
     * 所在省份
     */
    @ApiModelProperty(value = "省份", example = "广东省")
    private String province;

    /**
     * 所在城市
     */
    @ApiModelProperty(value = "城市", example = "深圳市")
    private String city;

    /**
     * 账户余额
     */
    @ApiModelProperty(value = "账户余额", example = "1000.50")
    private BigDecimal accountBalance;

    /**
     * 余额状态[0:不存在余额，1:存在余额]
     */
    @ApiModelProperty(value = "余额状态", example = "1", notes = "0:不存在余额，1:存在余额")
    private String accountState;

    /**
     * 关注状态[0:未关注，1:已关注]
     */
    @ApiModelProperty(value = "关注状态", example = "1", notes = "0:未关注，1:已关注")
    private String subscribeState;

    /**
     * 黑名单状态[0:非黑名单，1:黑名单]
     */
    @ApiModelProperty(value = "黑名单状态", example = "0", notes = "0:非黑名单，1:黑名单")
    private String blacklistState;

    /**
     * 违规状态[0:未违规,1:违规]
     */
    @ApiModelProperty(value = "违规状态", example = "0", notes = "0:未违规,1:违规")
    private String violationState;

    /**
     * 是否下单状态[0:未下单过，1:下单过]
     */
    @ApiModelProperty(value = "下单状态", example = "1", notes = "0:未下单过，1:下单过")
    private String purchaseState;

    /**
     * 绑定手机状态[0:未绑定,1:绑定]
     */
    @ApiModelProperty(value = "绑定手机状态", example = "1", notes = "0:未绑定,1:绑定")
    private String mobilePhoneState;

    /**
     * 实名状态【1：已实名，0：未实名】
     */
    @ApiModelProperty(value = "实名状态", example = "1", notes = "1：已实名，0：未实名")
    private String realState;

    /**
     * 是否必须实名【2:跟随店铺设置，1：必须实名，0：非必须实名】
     */
    @ApiModelProperty(value = "必须实名状态", example = "1", notes = "2:跟随店铺设置，1：必须实名，0：非必须实名")
    private String mandatoryRealState;

    /**
     * 注册时间
     */
    @ApiModelProperty(value = "注册时间", example = "2024-01-01 12:00:00")
    private Date registrationTime;

    /**
     * 上次登录时间
     */
    @ApiModelProperty(value = "上次登录时间", example = "2024-01-15 12:00:00")
    private Date lastLoginTime;

    /**
     * 首次下单时间
     */
    @ApiModelProperty(value = "首次下单时间", example = "2024-01-05 12:00:00")
    private Date firstPurchaseTime;

    /**
     * 最后一次下单时间
     */
    @ApiModelProperty(value = "最后下单时间", example = "2024-01-20 12:00:00")
    private Date lastPurchaseTime;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", example = "重要客户")
    private String remark;

    /**
     * 等级ID
     */
    @ApiModelProperty(value = "等级ID", example = "1")
    private String levelId;

    /**
     * 等级名称
     */
    @ApiModelProperty(value = "等级名称", example = "钻石会员")
    private String levelName;

    /**
     * 订单列表
     */
    @ApiModelProperty(value = "订单列表", notes = "顾客的订单列表")
    private List<PlayOrderInfoEntity> orderInfos;
    /**
     * 订单总数
     */
    @ApiModelProperty(value = "订单总数", example = "10")
    private String orderNumber;

    /**
     * 订单单价
     */
    @ApiModelProperty(value = "订单单价", example = "100.00")
    private String orderPrice;

    /**
     * 订单总金额
     */
    @ApiModelProperty(value = "订单总金额", example = "1000.00")
    private BigDecimal orderTotalAmount;
}
