package com.emotion.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.emotion.common.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.time.LocalDate;

/**
 * 用户档案实体类
 *
 * @author huazhongmin
 * @date 2025-12-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("t_user_profile")
public class UserProfile extends BaseEntity {

    /**
     * 用户ID (关联t_user.id)
     */
    @TableField("user_id")
    private String userId;

    /**
     * 昵称
     */
    @TableField("nickname")
    private String nickname;

    /**
     * 性别: male, female, secret
     */
    @TableField("gender")
    private String gender;

    /**
     * 星座
     */
    @TableField("zodiac")
    private String zodiac;

    /**
     * 职业
     */
    @TableField("profession")
    private String profession;

    /**
     * MBTI人格类型
     */
    @TableField("mbti")
    private String mbti;

    /**
     * 兴趣爱好 (JSON字符串)
     */
    @TableField("hobbies")
    private String hobbies;

    /**
     * 童年经历日期
     */
    @TableField("childhood_date")
    private LocalDate childhoodDate;

    /**
     * 童年经历描述
     */
    @TableField("childhood_content")
    private String childhoodContent;

    /**
     * 高光时刻日期
     */
    @TableField("peak_date")
    private LocalDate peakDate;

    /**
     * 高光时刻描述
     */
    @TableField("peak_content")
    private String peakContent;

    /**
     * 低谷时期日期
     */
    @TableField("valley_date")
    private LocalDate valleyDate;

    /**
     * 低谷时期描述
     */
    @TableField("valley_content")
    private String valleyContent;

    /**
     * 未来期许
     */
    @TableField("future_vision")
    private String futureVision;

    /**
     * 理想生活状态
     */
    @TableField("ideal_life")
    private String idealLife;

    /**
     * 生成的剧本列表 (JSON字符串)
     */
    @TableField("scripts")
    private String scripts;

    /**
     * 选择的路径列表 (JSON字符串)
     */
    @TableField("paths")
    private String paths;

    /**
     * 状态: 0-禁用, 1-正常
     */
    @TableField("status")
    private Integer status;
}
