package com.dora.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 微信图文消息文章实体
 * 
 * @author dora
 * @date 2024/12/01
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class WechatNewsArticle {

    /**
     * 文章ID
     */
    private Long id;

    /**
     * 关联的消息模板ID
     */
    private Long templateId;

    /**
     * 文章标题
     */
    private String title;

    /**
     * 作者
     */
    private String author;

    /**
     * 摘要
     */
    private String digest;

    /**
     * 文章内容
     */
    private String content;

    /**
     * 原文链接
     */
    private String contentSourceUrl;

    /**
     * 缩略图媒体ID
     */
    private String thumbMediaId;

    /**
     * 是否显示封面：0-不显示，1-显示
     */
    private Integer showCoverPic;

    /**
     * 点击跳转链接
     */
    private String url;

    /**
     * 缩略图URL
     */
    private String thumbUrl;

    /**
     * 是否打开评论：0-不打开，1-打开
     */
    private Integer needOpenComment;

    /**
     * 是否粉丝才可评论：0-所有人，1-仅粉丝
     */
    private Integer onlyFansCanComment;

    /**
     * 排序顺序
     */
    private Integer sortOrder;

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

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

    /**
     * 检查文章配置是否有效
     */
    public boolean isValid() {
        return title != null && !title.trim().isEmpty() 
            && title.length() <= 128;
    }

    /**
     * 是否显示封面
     */
    public boolean isShowCoverPic() {
        return showCoverPic != null && showCoverPic == 1;
    }

    /**
     * 是否需要打开评论
     */
    public boolean isNeedOpenComment() {
        return needOpenComment != null && needOpenComment == 1;
    }

    /**
     * 是否仅粉丝可评论
     */
    public boolean isOnlyFansCanComment() {
        return onlyFansCanComment != null && onlyFansCanComment == 1;
    }

    /**
     * 获取排序顺序，默认为0
     */
    public int getSortOrderValue() {
        return sortOrder != null ? sortOrder : 0;
    }
}
