package com.emotion.entity;

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

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

/**
 * 用户日记实体类
 *
 * @author huazhongmin
 * @date 2025-07-23
 */
@Data
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("t_diary_post")
public class DiaryPost extends BaseEntity {

    /**
     * 用户ID
     */
    @TableField("user_id")
    private String userId;

    /**
     * 日记标题
     */
    @TableField("title")
    private String title;

    /**
     * 日记内容
     */
    @TableField("content")
    private String content;

    /**
     * 图片列表 (存储图片URL数组)
     */
    @TableField("images")
    private String images;

    /**
     * 视频列表 (存储视频URL数组)
     */
    @TableField("videos")
    private String videos;

    /**
     * 发布地点
     */
    @TableField("location")
    private String location;

    /**
     * 纬度
     */
    @TableField("latitude")
    private BigDecimal latitude;

    /**
     * 经度
     */
    @TableField("longitude")
    private BigDecimal longitude;

    /**
     * 天气信息
     */
    @TableField("weather")
    private String weather;

    /**
     * 心情状态
     */
    @TableField("mood")
    private String mood;

    /**
     * 心情评分 (0-10)
     */
    @TableField("mood_score")
    private BigDecimal moodScore;

    /**
     * 标签列表
     */
    @TableField("tags")
    private String tags;

    /**
     * 是否公开: 0-仅自己可见, 1-公开
     */
    @TableField("is_public")
    private Integer isPublic;

    /**
     * 是否匿名发布: 0-实名, 1-匿名
     */
    @TableField("is_anonymous")
    private Integer isAnonymous;

    /**
     * 浏览数
     */
    @TableField("view_count")
    private Integer viewCount;

    /**
     * 点赞数
     */
    @TableField("like_count")
    private Integer likeCount;

    /**
     * 评论数
     */
    @TableField("comment_count")
    private Integer commentCount;

    /**
     * 分享数
     */
    @TableField("share_count")
    private Integer shareCount;

    /**
     * AI评论内容
     */
    @TableField("ai_comment")
    private String aiComment;

    /**
     * AI评论时间
     */
    @TableField("ai_comment_time")
    private LocalDateTime aiCommentTime;

    /**
     * AI情绪分析结果
     */
    @TableField("ai_emotion_analysis")
    private String aiEmotionAnalysis;

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

    /**
     * AI提取的关键词
     */
    @TableField("ai_keywords")
    private String aiKeywords;

    /**
     * AI建议
     */
    @TableField("ai_suggestions")
    private String aiSuggestions;

    /**
     * 发布时间
     */
    @TableField("publish_time")
    private LocalDateTime publishTime;

    /**
     * 最后评论时间
     */
    @TableField("last_comment_time")
    private LocalDateTime lastCommentTime;

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

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

    /**
     * 是否精选: 0-普通, 1-精选
     */
    @TableField("featured")
    private Integer featured;

    /**
     * 扩展元数据
     */
    @TableField("metadata")
    private String metadata;
} 