forum

package
v0.0.0-...-61222a5 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2021 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DTO

type DTO struct {
	ID          uuid.UUID
	Name        string
	Slug        string
	Description string
	AuthorID    uuid.UUID
	Topics      int
	Posts       int
	ParentID    *uuid.UUID
	CreatedAt   time.Time
	UpdatedAt   time.Time
}

DTO is a representation of a forum

type Forum

type Forum struct {
	ID          uuid.UUID `bun:"type:uuid,default:uuid_generate_v4()"`
	Name        string
	Slug        string
	Description string
	AuthorID    uuid.UUID `bun:"type:uuid"`
	Topics      int
	Posts       int
	ParentID    uuid.UUID `bun:"type:uuid,default:uuid_nil()"`
	Children    []Forum   `bun:"rel:has-many,join:id=parent_id"`
	CreatedAt   time.Time
	UpdatedAt   time.Time
}

type Repository

type Repository interface {
	FindByID(ctx context.Context, id uuid.UUID) (*Forum, error)
	FindBySlug(ctx context.Context, slug string) (*Forum, error)
	FindWithParents(ctx context.Context) ([]Forum, error)
	Create(ctx context.Context, dto DTO) (*Forum, error)
}

type Service

type Service interface {
	GetForum(ctx context.Context, id uuid.UUID) (*Forum, error)
	GetBySlug(ctx context.Context, slug string) (*Forum, error)
	GetForums(ctx context.Context) ([]Forum, error)
	CreateForum(ctx context.Context, dto DTO) (*Forum, error)
}

func ProvideService

func ProvideService(repository Repository) Service

Jump to

Keyboard shortcuts

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