package com.emotion.dto.response.userprofile;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 用户档案响应对象
 *
 * @author huazhongmin
 * @date 2025-12-21
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserProfileResponse {

    /**
     * ID
     */
    private String id;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 性别
     */
    private String gender;

    /**
     * 星座
     */
    private String zodiac;

    /**
     * 职业
     */
    private String profession;

    /**
     * MBTI人格类型
     */
    private String mbti;

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

    /**
     * 童年经历日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate childhoodDate;

    /**
     * 童年经历描述
     */
    private String childhoodContent;

    /**
     * 高光时刻日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate peakDate;

    /**
     * 高光时刻描述
     */
    private String peakContent;

    /**
     * 低谷时期日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate valleyDate;

    /**
     * 低谷时期描述
     */
    private String valleyContent;

    /**
     * 未来期许
     */
    private String futureVision;

    /**
     * 理想生活状态
     */
    private String idealLife;

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

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

    /**
     * 状态: 0-禁用, 1-正常
     */
    private Integer status;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}
