article_comment.go 2.5 KB
package domain

import (
	"context"

	"gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/db/transaction"
)

// 文章评论
type ArticleComment struct {
	Id               int64       `json:"id"` // 评论id
	CompanyId        int64       `json:"companyId"`
	CreatedAt        int64       `json:"createdAt,omitempty"`
	UpdatedAt        int64       `json:"updatedAt,omitempty"`
	DeletedAt        int64       `json:"deletedAt,omitempty"`
	Version          int         `json:"version,omitempty"`
	Pid              int64       `json:"pid"`              // 对哪个评论进行回复
	TopId            int64       `json:"topId"`            // 归属于最上级的哪个评论
	ArticleId        int64       `json:"articleId"`        // 文章id
	ArticleSectionId int64       `json:"articleSectionId"` // 文本内容id
	SectionContent   string      `json:"sectionContent"`   // 引用的文章内容文本
	FromUserId       int64       `json:"fromUserId"`       // 谁填写的评论
	FromUser         UserSimple  `json:"fromUser"`         // 谁填写的评论
	ToUserId         int64       `json:"toUserId"`         // 回复谁的评论
	ToUser           UserSimple  `json:"toUser"`           // 回复谁的评论
	Content          string      `json:"content"`          // 评论内容
	CountReply       int         `json:"countReply"`       // 回复数量
	CountUserLove    int         `json:"countUserLove"`    // 用户点赞数量
	CountAdminLove   int         `json:"countAdminLove"`   // 运营点赞数量
	Show             CommentShow `json:"showState"`        // 评论的展示状态(0显示、1不显示)
	// ...more
}

// 评论的展示状态(0显示、1不显示)
type CommentShow int

const (
	CommentShowEnable  CommentShow = 0
	CommentShowDisable CommentShow = 1
)

type ArticleCommentRepository interface {
	Insert(ctx context.Context, conn transaction.Conn, dm *ArticleComment) (*ArticleComment, error)
	Update(ctx context.Context, conn transaction.Conn, dm *ArticleComment) (*ArticleComment, error)
	UpdateWithVersion(ctx context.Context, conn transaction.Conn, dm *ArticleComment) (*ArticleComment, error)
	Delete(ctx context.Context, conn transaction.Conn, dm *ArticleComment) (*ArticleComment, error)
	FindOne(ctx context.Context, conn transaction.Conn, id int64) (*ArticleComment, error)
	Find(ctx context.Context, conn transaction.Conn, queryOptions map[string]interface{}) (int64, []*ArticleComment, error)
	IncreaseCountUserLove(ctx context.Context, conn transaction.Conn, incr int, dm *ArticleComment) error //点赞数量变动
}