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

import com.starry.common.domain.BasePageEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 顾客分页查询对象
 *
 * @author admin
 * @since 2024/5/14 下午7:47
 **/
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(value = "顾客查询参数", description = "查询顾客信息的条件参数")
public class PlayCustomUserQueryVo extends BasePageEntity {

    @ApiModelProperty(value = "顾客ID", example = "1", notes = "特定顾客的ID")
    private String id;

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

    /**
     * 顾客昵称
     */
    @ApiModelProperty(value = "昵称", example = "张三", notes = "顾客的昵称，支持模糊查询")
    private String nickname;

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

    /**
     * 微信号
     */
    @ApiModelProperty(value = "微信号", example = "zhangsan123", notes = "顾客的微信号")
    private String weiChatCode;

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

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

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

    /**
     * 余额状态[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 violationState;

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

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

    /**
     * 注册时间
     */
    @ApiModelProperty(value = "注册时间范围", example = "['2024-01-01 00:00:00','2024-12-31 23:59:59']", notes = "注册时间范围，包含开始和结束时间")
    private List<String> registrationTime;

    /**
     * 首次下单时间
     */
    @ApiModelProperty(value = "首次下单时间范围", example = "['2024-01-01 00:00:00','2024-12-31 23:59:59']", notes = "首次下单时间范围，包含开始和结束时间")
    private List<String> firstPurchaseTime;

    /**
     * 最后一次下单时间
     */
    @ApiModelProperty(value = "最后下单时间范围", example = "['2024-01-01 00:00:00','2024-12-31 23:59:59']", notes = "最后一次下单时间范围，包含开始和结束时间")
    private List<String> lastPurchaseTime;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", example = "重要客户", notes = "顾客相关备注信息")
    private String remark;

    /**
     * 排序字段
     */
    @ApiModelProperty(value = "排序字段", example = "registrationTime", notes = "排序的字段名称")
    private String sort;

}
