package com.gxwebsoft.love.param;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Collection;
import java.util.Set;

/**
 * 会员资料表查询参数
 *
 * @author 科技小王子
 * @since 2023-06-09 21:42:26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value = "UserProfileParam对象", description = "会员资料表查询参数")
public class UserProfileParam extends BaseParam {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "自增ID")
    @QueryField(type = QueryType.EQ)
    private Integer id;

    @ApiModelProperty(value = "兴趣爱好")
    private String interest;

    @ApiModelProperty(value = "年龄")
    @TableField(exist = false)
    private String age;

    @ApiModelProperty(value = "身高")
    private String height;

    @ApiModelProperty(value = "月收入")
    private String monthlyPay;

    @ApiModelProperty(value = "年收入")
    private String yearlyPay;

    @ApiModelProperty(value = "学历")
    private String education;

    @ApiModelProperty(value = "职业")
    private String vocation;

    @ApiModelProperty(value = "婚姻状况")
    private String maritalStatus;

    @ApiModelProperty(value = "有无小孩")
    private String hasChildren;

    @ApiModelProperty(value = "是否要小孩")
    private String haveChild;

    @ApiModelProperty(value = "职业")
    private String position;

    @ApiModelProperty(value = "体重")
    private String weight;

    @ApiModelProperty(value = "是否有房有车")
    private String hasCar;

    @ApiModelProperty(value = "何时想结婚")
    private String whenMarried;

    @ApiModelProperty(value = "择偶条件-年龄")
    private String ageMate;

    @ApiModelProperty(value = "择偶条件-身高")
    private String heightMate;

    @ApiModelProperty(value = "择偶条件-月收入")
    private String monthlyPayMate;

    @ApiModelProperty(value = "择偶条件-年收入")
    private String yearlyPayMate;

    @ApiModelProperty(value = "所在国家")
    private String country;

    @ApiModelProperty(value = "所在省份")
    private String province;

    @ApiModelProperty(value = "所在城市")
    private String city;

    @ApiModelProperty(value = "所在辖区")
    private String region;

    @ApiModelProperty(value = "所在地区")
    private String area;

    @ApiModelProperty(value = "择偶条件-所在省份")
    private String provinceMate;

    @ApiModelProperty(value = "择偶条件-所在城市")
    private String cityMate;

    @ApiModelProperty(value = "择偶条件-所在辖区")
    private String regionMate;

    @ApiModelProperty(value = "择偶条件-地区")
    private String areaMate;

    @ApiModelProperty(value = "择偶条件-学历")
    private String educationMate;

    @ApiModelProperty(value = "择偶条件-婚姻状况")
    private String maritalStatusMate;

    @ApiModelProperty(value = "择偶条件-有无小孩")
    private String hasChildrenMate;

    @ApiModelProperty(value = "择偶条件-是否要小孩")
    private String haveChildMate;

    @ApiModelProperty(value = "择偶条件-职业")
    private String vocationMate;

    @ApiModelProperty(value = "择偶条件-体重")
    private String weightMate;

    @ApiModelProperty(value = "择偶条件-体型")
    private String shapeMate;

    @ApiModelProperty(value = "择偶条件-是否吸烟")
    private String isSmokingMate;

    @ApiModelProperty(value = "择偶条件-是否喝酒")
    private String isDrinkMate;

    @ApiModelProperty(value = "择偶条件-是否有车")
    private String hasCarMate;

    @ApiModelProperty(value = "择偶条件-是否有房")
    private String hasHouseMate;

    @ApiModelProperty(value = "择偶条件-何时想结婚")
    private String whenMarriedMate;

    @ApiModelProperty(value = "是否推荐")
    @QueryField(type = QueryType.EQ)
    private Boolean recommend;

    @ApiModelProperty(value = "用户ID")
    @QueryField(type = QueryType.EQ)
    private Integer userId;

    @ApiModelProperty(value = "备注")
    private String comments;

    @ApiModelProperty(value = "场景")
    @TableField(exist = false)
    private String scene;

    @ApiModelProperty(value = "是否查询关注状态")
    @TableField(exist = false)
    private Boolean showFollow;

    @ApiModelProperty(value = "当前登录用户ID")
    @TableField(exist = false)
    private Integer loginUserId;

    @ApiModelProperty("性别, 字典标识")
    private String sex;

    @ApiModelProperty(value = "用户id集合")
    @TableField(exist = false)
    private Collection<Integer> userIds;

    @ApiModelProperty(value = "排除用户id集合")
    @TableField(exist = false)
    private Collection<Integer> nUserIds;

    @ApiModelProperty(value = "随机读取")
    @TableField(exist = false)
    private boolean random;

    @ApiModelProperty(value = "读取相册")
    @TableField(exist = false)
    private boolean albums;

}
