package com.emotion.dto.response;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 日记响应DTO
 *
 * @author huazhongmin
 * @date 2025-07-23
 */
@Data
public class DiaryPostResponse {

    /**
     * 日记ID
     */
    private String id;

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

    /**
     * 用户信息
     */
    private UserInfoResponse userInfo;

    /**
     * 日记标题
     */
    private String title;

    /**
     * 日记内容
     */
    private String content;

    /**
     * 图片列表
     */
    private List<String> images;

    /**
     * 视频列表
     */
    private List<String> videos;

    /**
     * 发布地点
     */
    private String location;

    /**
     * 纬度
     */
    private BigDecimal latitude;

    /**
     * 经度
     */
    private BigDecimal longitude;

    /**
     * 天气信息
     */
    private String weather;

    /**
     * 心情状态
     */
    private String mood;

    /**
     * 心情评分 (0-10)
     */
    private BigDecimal moodScore;

    /**
     * 标签列表
     */
    private List<String> tags;

    /**
     * 是否公开: 0-仅自己可见, 1-公开
     */
    private Integer isPublic;

    /**
     * 是否匿名发布: 0-实名, 1-匿名
     */
    private Integer isAnonymous;

    /**
     * 浏览数
     */
    private Integer viewCount;

    /**
     * 点赞数
     */
    private Integer likeCount;

    /**
     * 评论数
     */
    private Integer commentCount;

    /**
     * 分享数
     */
    private Integer shareCount;

    /**
     * AI评论内容
     */
    private String aiComment;

    /**
     * AI评论时间
     */
    private String aiCommentTime;

    /**
     * AI情绪分析结果
     */
    private Object aiEmotionAnalysis;

    /**
     * AI情感评分 (-1到1)
     */
    private BigDecimal aiSentimentScore;

    /**
     * AI提取的关键词
     */
    private List<String> aiKeywords;

    /**
     * AI建议
     */
    private String aiSuggestions;

    /**
     * 发布时间
     */
    private String publishTime;

    /**
     * 最后评论时间
     */
    private String lastCommentTime;

    /**
     * 状态: draft-草稿, published-已发布, hidden-隐藏, deleted-已删除
     */
    private String status;

    /**
     * 优先级 (用于置顶功能)
     */
    private Integer priority;

    /**
     * 是否精选: 0-普通, 1-精选
     */
    private Integer featured;

    /**
     * 扩展元数据
     */
    private Object metadata;

    /**
     * 创建时间
     */
    private String createTime;

    /**
     * 更新时间
     */
    private String updateTime;

    /**
     * 是否已点赞
     */
    private Boolean isLiked;

    /**
     * 是否已收藏
     */
    private Boolean isBookmarked;
} 