opinion

package
v0.0.0-...-2ddb24b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2025 License: AGPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Opinion

type Opinion struct {
	// contains filtered or unexported fields
}

func NewOpinion

func NewOpinion(
	opinionID shared.UUID[Opinion],
	talkSessionID shared.UUID[talksession.TalkSession],
	userID shared.UUID[user.User],
	parentOpinionID *shared.UUID[Opinion],
	title *string,
	content string,
	createdAt time.Time,
	referenceURL *string,
) (*Opinion, error)

func (*Opinion) Content

func (o *Opinion) Content() string

func (*Opinion) Count

func (o *Opinion) Count() int

func (*Opinion) CreatedAt

func (o *Opinion) CreatedAt() time.Time

func (*Opinion) IsReferenceImageUpdateRequired

func (o *Opinion) IsReferenceImageUpdateRequired() bool

IsReferenceImageUpdateRequired 画像がアップロードされているかどうかを判定

func (*Opinion) OpinionID

func (o *Opinion) OpinionID() shared.UUID[Opinion]

func (*Opinion) Opinions

func (o *Opinion) Opinions() []Opinion

func (*Opinion) ParentOpinionID

func (o *Opinion) ParentOpinionID() *shared.UUID[Opinion]

func (*Opinion) ReferenceImage

func (o *Opinion) ReferenceImage() *ReferenceImage

func (*Opinion) ReferenceImageURL

func (o *Opinion) ReferenceImageURL() *string

func (*Opinion) ReferenceURL

func (o *Opinion) ReferenceURL() *string

func (*Opinion) Reply

func (o *Opinion) Reply(opinion Opinion)

func (*Opinion) SetReferenceImage

func (o *Opinion) SetReferenceImage(ctx context.Context, file *multipart.FileHeader) error

SetReferenceImage 画像をアップロード

func (*Opinion) TalkSessionID

func (o *Opinion) TalkSessionID() shared.UUID[talksession.TalkSession]

func (*Opinion) Title

func (o *Opinion) Title() *string

func (*Opinion) UserID

func (o *Opinion) UserID() shared.UUID[user.User]

type OpinionRepository

type OpinionRepository interface {
	Create(context.Context, Opinion) error
	FindByParentID(context.Context, shared.UUID[Opinion]) ([]Opinion, error)
	// FindByTalkSessionWithoutVote まだユーザーが投票していない意見をランダムに取得
	FindByTalkSessionWithoutVote(
		ctx context.Context,
		userID shared.UUID[user.User],
		talkSessionID shared.UUID[talksession.TalkSession],
		limit int,
	) ([]Opinion, error)
}

type OpinionService

type OpinionService interface {
	// すでに自分が意見に投票OR返信しているかどうかを判定
	IsVoted(ctx context.Context, opinionID shared.UUID[Opinion], userID shared.UUID[user.User]) (bool, error)
}

type ReferenceImage

type ReferenceImage struct {
	// contains filtered or unexported fields
}

func NewReferenceImage

func NewReferenceImage(
	url *string,
) *ReferenceImage

func (*ReferenceImage) ImageInfo

func (p *ReferenceImage) ImageInfo() *image.ImageInfo

func (*ReferenceImage) SetReferenceImage

func (p *ReferenceImage) SetReferenceImage(
	ctx context.Context,
	file *multipart.FileHeader,
) error

func (*ReferenceImage) URL

func (p *ReferenceImage) URL() *string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL