discussion_opinion.go 1.7 KB
package domain

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

type DiscussionOpinion struct {
	Id           int64  // 唯一标识
	CompanyId    int64  `json:"companyId"`    // 公司ID
	ArticleId    int64  `json:"articleId"`    // 文章ID
	DiscussionId int64  `json:"discussionId"` // 讨论ID
	ProviderId   int64  `json:"providerId"`   // 用户ID
	OpinionId    int64  `json:"opinionId"`    // 选项ID
	OpinionDesc  string `json:"opinionDesc"`  // 选项描述
	Reason       string `json:"reason"`       // 理由
	Show         int    `json:"show"`         // 显示状态(1显示、0不显示)
	AcceptUserId int64  `json:"acceptUserId"` // 采纳人ID(最终结案的时候唯一)
	CreatedAt    int64  `json:",omitempty"`
	UpdatedAt    int64  `json:",omitempty"`
	DeletedAt    int64  `json:",omitempty"`
	Version      int    `json:",omitempty"`
}

type DiscussionOpinionRepository interface {
	Insert(ctx context.Context, conn transaction.Conn, dm *DiscussionOpinion) (*DiscussionOpinion, error)
	Update(ctx context.Context, conn transaction.Conn, dm *DiscussionOpinion) (*DiscussionOpinion, error)
	UpdateWithVersion(ctx context.Context, conn transaction.Conn, dm *DiscussionOpinion) (*DiscussionOpinion, error)
	Delete(ctx context.Context, conn transaction.Conn, dm *DiscussionOpinion) (*DiscussionOpinion, error)
	FindOne(ctx context.Context, conn transaction.Conn, id int64) (*DiscussionOpinion, error)
	Find(ctx context.Context, conn transaction.Conn, queryOptions map[string]interface{}) (int64, []*DiscussionOpinion, error)
}

func (m *DiscussionOpinion) Identify() interface{} {
	if m.Id == 0 {
		return nil
	}
	return m.Id
}