package com.kexue.skills.entity;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import java.io.Serializable;
import com.kexue.skills.entity.base.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * (CmsContent)实体类
 *
 * @author 王志维
 * @since 2025-02-21 23:01:48
 */
@Data
public class CmsContent extends BaseEntity implements Serializable  {
    private static final long serialVersionUID = 1L;

        @Schema(description ="主键ID")
        private Long contentId;

        @Schema(description ="标题")
        private String title;

        @Schema(description ="英文标题")
        private String titleEn;

        @Schema(description ="是否是官方：0否，1是")
        private Boolean isOfficial;

        @Schema(description ="图标")
        private String icon;

        @Schema(description ="背景")
        private String background;

        @Schema(description ="文件URL")
        private String fileUrl;

        @Schema(description ="内容摘要")
        private String summary;

        @Schema(description ="详细描述")
        private String description;

        @Schema(description ="英文描述")
        private String descriptionEn;

        @Schema(description ="需求说明")
        private String requirement;

        @Schema(description ="介绍信息")
        private String introduce;

        @Schema(description ="英文介绍")
        private String introduceEn;

        @Schema(description ="分享数量")
        private Integer shareCount;

        @Schema(description ="点赞量")
        private Integer likeCount;

        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @Schema(description ="创建时间")
        private Date createTime;

        @Schema(description ="付费金额")
        private BigDecimal price;

        @Schema(description ="内容类型（1文章，2视频，3图片）")
        private Integer contentType;

        @Schema(description ="内容详情")
        private String content;

        @Schema(description ="英文内容")
        private String contentEn;

        @Schema(description ="封面图片")
        private String coverImage;

        @Schema(description ="作者ID")
        private Long authorId;

        @Schema(description ="作者名称")
        private String authorName;

        @Schema(description ="审核人ID")
        private Long reviewerId;

        @Schema(description ="审核人名称")
        private String reviewerName;

        @Schema(description ="审核状态（1未发布，2待审核，3审核通过，4审核未通过）")
        private Integer auditStatus;

        @Schema(description ="审核意见")
        private String auditComment;

        @Schema(description ="发布状态（1未发布，2已发布，3已下架）--> 公有还是私有：1私有，2公有")
        private Integer  publishStatus;

        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @Schema(description ="发布时间")
        private Date publishTime;

        @Schema(description ="阅读量")
        private Integer viewCount;

        @Schema(description ="评论量")
        private Integer commentCount;

        @Schema(description ="排序")
        private Integer sort;

        @Schema(description ="所需积分")
        private Integer requiredPoints;

        @Schema(description ="是否支持积分支付：0不支持，1支持")
        private Integer supportPointsPay;

        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @Schema(description ="更新时间")
        private Date updateTime;

        @Schema(description ="创建人")
        private String createBy;

        @Schema(description ="更新人")
        private String updateBy;

        @Schema(description ="是否删除 ：0 未删除，1已删除")
        private Integer deleteFlag;
        
        @Schema(description ="子分类列表")
        private java.util.List<CmsCategory> subCategoryList;

        @Schema(description ="是否付费：0免费，1付费")
        private Integer isPaid;

        @Schema(description ="副标题")
        private String subtitle;

        @Schema(description ="来源")
        private String origin;

        @Schema(description ="标签")
        private String tags;

}
