package com.zhentao.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * 用户动态实体类
 */
@Data
@TableName("user_dynamics")
public class UserDynamics {
    /**
     * 动态ID
     */
    @TableId(value = "dynamic_id", type = IdType.AUTO)
    private Integer dynamicId;

    /**
     * 发布者用户ID
     */
    private Integer userId;

    /**
     * 动态内容（支持富文本）
     */
    private String content;

    /**
     * 媒体文件URL数组（图片/视频）
     */
    private String mediaUrls;

    /**
     * 1-纯文本 2-图片 3-视频
     */
    private Integer mediaType;

    /**
     * 0-待审核 1-审核通过 2-审核拒绝 3-人工审核中
     */
    private Integer auditStatus;

    /**
     * 审核备注
     */
    private String auditRemark;

    /**
     * 审核时间
     */
    private LocalDateTime auditTime;

    /**
     * 审核管理员ID
     */
    private Integer auditAdminId;

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

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

    /**
     * 收藏数
     */
    private Integer favoriteCount;

    /**
     * 转发数
     */
    private Integer shareCount;

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

    /**
     * 0-删除 1-正常 2-隐藏
     */
    @TableLogic
    private Integer status;

    /**
     * 1-公开 2-仅粉丝 3-私密
     */
    private Integer visibility;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;

    /**
     * 用户信息（非数据库字段，用于关联查询）
     */
    @TableField(exist = false)
    private Users user;

    /**
     * 当前用户是否点赞（非数据库字段）
     */
    @TableField(exist = false)
    private Boolean isLiked;

    /**
     * 当前用户是否收藏（非数据库字段）
     */
    @TableField(exist = false)
    private Boolean isFavorited;
}


