package com.rj.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 择偶/恋爱期望画像表
 *
 * @author system
 * @since 2026-04-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("love_whoI_pairs_hope")
@Schema(description = "择偶/恋爱期望画像表")
public class LoveWhoIPairsHope implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键，UUID")
    @TableId("id")
    private String id;

    @Schema(description = "关联ID，UUID")
    @TableField("related_id")
    private String relatedId;

    @Schema(description = "租户ID")
    @TableField("tenant_id")
    private String tenantId;

    @Schema(description = "手机号码")
    @TableField("my_phone")
    private String myPhone;

    @Schema(description = "名字")
    @TableField("name")
    private String name;

    @Schema(description = "性别")
    @TableField("gender")
    private String gender;

    @Schema(description = "年龄")
    @TableField("age")
    private Integer age;

    @Schema(description = "行业")
    @TableField("industry")
    private String industry;

    @Schema(description = "收入水平")
    @TableField("income_level")
    private String incomeLevel;

    @Schema(description = "身高（厘米）")
    @TableField("height_cm")
    private Integer heightCm;

    @Schema(description = "体重（千克）")
    @TableField("weight_kg")
    private BigDecimal weightKg;

    @Schema(description = "学历")
    @TableField("education")
    private String education;

    @Schema(description = "专业")
    @TableField("major")
    private String major;

    @Schema(description = "房子（有无、贷款等）")
    @TableField("house_situation")
    private String houseSituation;

    @Schema(description = "车子（有无等）")
    @TableField("car_situation")
    private String carSituation;

    @Schema(description = "父亲职业")
    @TableField("father_occupation")
    private String fatherOccupation;

    @Schema(description = "父亲年龄")
    @TableField("father_age")
    private Integer fatherAge;

    @Schema(description = "母亲职业")
    @TableField("mother_occupation")
    private String motherOccupation;

    @Schema(description = "母亲年龄")
    @TableField("mother_age")
    private Integer motherAge;

    @Schema(description = "对忠诚的看法")
    @TableField("loyalty_view")
    private String loyaltyView;

    @Schema(description = "对边界的看法")
    @TableField("boundary_view")
    private String boundaryView;

    @Schema(description = "对异性朋友的看法")
    @TableField("opposite_sex_friend_view")
    private String oppositeSexFriendView;

    @Schema(description = "吵架怎么处理")
    @TableField("argument_handling")
    private String argumentHandling;

    @Schema(description = "金钱观（AA制、不理财等）")
    @TableField("money_view")
    private String moneyView;

    @Schema(description = "周末怎么过")
    @TableField("weekend_habit")
    private String weekendHabit;

    @Schema(description = "家庭氛围")
    @TableField("family_atmosphere")
    private String familyAtmosphere;

    @Schema(description = "运动")
    @TableField("exercise")
    private String exercise;

    @Schema(description = "在意什么")
    @TableField("cares_about")
    private String caresAbout;

    @Schema(description = "害怕什么")
    @TableField("fears")
    private String fears;

    @Schema(description = "近1年目标")
    @TableField("goal_one_year")
    private String goalOneYear;

    @Schema(description = "对恋爱节奏的看法")
    @TableField("dating_pace_view")
    private String datingPaceView;

    @Schema(description = "抽烟")
    @TableField("smoking")
    private String smoking;

    @Schema(description = "喝酒")
    @TableField("drinking")
    private String drinking;

    @Schema(description = "备注")
    @TableField("remark")
    private String remark;

    @Schema(description = "创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;

    @Schema(description = "修改时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
}
