package yb_community_question_comment

import (
	"time"
)

// YbCommunityQuestionComment 研报问答社区 用户留言表
type YbCommunityQuestionComment struct {
	CommunityQuestionCommentID uint64    `gorm:"primaryKey;column:community_question_comment_id;type:bigint(20) unsigned;not null" json:"-"`
	CommunityQuestionID        uint32    `gorm:"index:idx_community_question_id;column:community_question_id;type:int(10) unsigned;not null;default:0" json:"communityQuestionId"` // 问答ID
	UserID                     uint64    `gorm:"index:idx_user_id;column:user_id;type:bigint(20) unsigned;not null;default:0" json:"userId"`                                       // 用户id
	RealName                   string    `gorm:"column:real_name;type:varchar(255);not null;default:''" json:"realName"`                                                           // 用户当时昵称
	Content                    string    `gorm:"column:content;type:text" json:"content"`                                                                                          // 留言内容
	ReplyCommentID             uint64    `gorm:"column:reply_comment_id;type:bigint(20) unsigned;not null;default:0" json:"replyCommentId"`                                        // 回复的留言ID
	IsTop                      int8      `gorm:"column:is_top;type:tinyint(2);not null;default:0" json:"isTop"`                                                                    // 是否置顶（0-未置顶，1-置顶）
	IsHot                      int8      `gorm:"column:is_hot;type:tinyint(2);not null;default:0" json:"isHot"`                                                                    // 是否设置精选（0-未设置，1-已设置）
	HotTopTime                 time.Time `gorm:"column:hot_top_time;type:datetime" json:"hotTopTime"`                                                                              // 设置精选或者设置置顶的时间
	Type                       int8      `gorm:"column:type;type:tinyint(1);not null;default:1" json:"type"`                                                                       // 留言类型 1-评论 2-回复
	Enabled                    int8      `gorm:"column:enabled;type:tinyint(1);not null;default:1" json:"enabled"`                                                                 // 是否有效, 0-无效留言 1-有效留言
	IsShowName                 int8      `gorm:"column:is_show_name;type:tinyint(1);not null;default:0" json:"isShowName"`                                                         // 是否匿名 0-匿名，1-不匿名
	SourceAgent                int8      `gorm:"column:source_agent;type:tinyint(1);not null;default:1" json:"sourceAgent"`                                                        // 留言入口来源，1：小程序，2：小程序pc, 4：web pc
	TopTime                    time.Time `gorm:"column:top_time;type:datetime" json:"topTime"`                                                                                     // 设置置顶的时间
	HotTime                    time.Time `gorm:"column:hot_time;type:datetime" json:"hotTime"`                                                                                     // 设置精选的时间
	ModifyTime                 time.Time `gorm:"column:modify_time;type:datetime;not null;default:CURRENT_TIMESTAMP" json:"modifyTime"`                                            // 修改时间
	CreateTime                 time.Time `gorm:"column:create_time;type:datetime;not null;default:CURRENT_TIMESTAMP" json:"createTime"`                                            // 创建时间
	QaAvatarUrl                string    `gorm:"column:qa_avatar_url;type:varchar(255);default:''" json:"QaAvatarUrl"`                                                             // 头像
	Source                     int8      `gorm:"column:source;type:tinyint(4);not null;default:1" json:"source"`                                                                   // 来源：1-问答社区(默认); 2-视频社区
}

// TableName get sql table name.获取数据库表名
func (m *YbCommunityQuestionComment) TableName() string {
	return "yb_community_question_comment"
}

// YbCommunityQuestionCommentColumns get sql column name.获取数据库列名
var YbCommunityQuestionCommentColumns = struct {
	CommunityQuestionCommentID string
	CommunityQuestionID        string
	UserID                     string
	RealName                   string
	Content                    string
	ReplyCommentID             string
	IsTop                      string
	IsHot                      string
	HotTopTime                 string
	Type                       string
	Enabled                    string
	IsShowName                 string
	SourceAgent                string
	TopTime                    string
	HotTime                    string
	ModifyTime                 string
	CreateTime                 string
	QaAvatarUrl                string
	Source                     string
}{
	CommunityQuestionCommentID: "community_question_comment_id",
	CommunityQuestionID:        "community_question_id",
	UserID:                     "user_id",
	RealName:                   "real_name",
	Content:                    "content",
	ReplyCommentID:             "reply_comment_id",
	IsTop:                      "is_top",
	IsHot:                      "is_hot",
	HotTopTime:                 "hot_top_time",
	Type:                       "type",
	Enabled:                    "enabled",
	IsShowName:                 "is_show_name",
	SourceAgent:                "source_agent",
	TopTime:                    "top_time",
	HotTime:                    "hot_time",
	ModifyTime:                 "modify_time",
	CreateTime:                 "create_time",
	QaAvatarUrl:                "qa_avatar_url",
	Source:                     "source",
}

const (
	SourceQuestion  = iota + 1 // 问答社区->1
	SourceVideo                // 视频社区->2
	SourceRoadVideo            // 路演视频->3
)
