articles

package
v0.7.1 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ArticleMeta = drel.ModelMeta[Article]{
	Table:         "articles",
	Columns:       []string{"id", "title", "body", "tags", "metadata", "deleted_at", "version", "created_by", "updated_by", "created_at", "updated_at"},
	PKColumn:      "id",
	Scan:          scanArticle,
	Snapshot:      snapshotArticle,
	Diff:          diffArticle,
	PKValue:       articlePKValue,
	InsertColumns: articleInsertColumns,
	ScanReturning: articleScanReturning,
	ColumnValue:   articleColumnValue,
	NormalizeKey:  articleNormalizeKey,
	HasSoftDelete: true,
	Filters:       []drel.NamedFilter{drel.SoftDeleteFilter},
	HasVersioned:  true,
	VersionValue:  func(p *Article) int { return p.Version() },
	SetVersion:    func(p *Article, v int) { *p.VersionPtr() = v },
	HasAudit:      true,
	AuditSetCreate: func(p *Article, actor string) {
		createdByPtr, updatedByPtr := p.AuditPtrs()
		*createdByPtr = actor
		*updatedByPtr = actor
	},
	AuditSetUpdate: func(p *Article, actor string) {
		_, updatedByPtr := p.AuditPtrs()
		*updatedByPtr = actor
	},
}
View Source
var Articles = struct {
	ID        drel.OrderedColumn[int]
	Title     drel.StringColumn
	Body      drel.StringColumn
	Tags      drel.ComparableColumn[[]string]
	Metadata  drel.ComparableColumn[map[string]string]
	DeletedAt drel.ComparableColumn[*time.Time]
	Version   drel.OrderedColumn[int]
	CreatedBy drel.StringColumn
	UpdatedBy drel.StringColumn
	CreatedAt drel.TimeColumn
	UpdatedAt drel.TimeColumn
}{
	ID:        drel.NewOrderedCol[int]("id"),
	Title:     drel.NewStringCol("title"),
	Body:      drel.NewStringCol("body"),
	Tags:      drel.NewComparableCol[[]string]("tags"),
	Metadata:  drel.NewComparableCol[map[string]string]("metadata"),
	DeletedAt: drel.NewComparableCol[*time.Time]("deleted_at"),
	Version:   drel.NewOrderedCol[int]("version"),
	CreatedBy: drel.NewStringCol("created_by"),
	UpdatedBy: drel.NewStringCol("updated_by"),
	CreatedAt: drel.NewTimeCol("created_at"),
	UpdatedAt: drel.NewTimeCol("updated_at"),
}

Functions

This section is empty.

Types

type Article

type Article struct {
	drel.Model[int]
	drel.SoftDelete
	drel.Versioned
	drel.Audit
	Title    string            `db:"title"`
	Body     string            `db:"body"`
	Tags     []string          `db:"tags"`
	Metadata map[string]string `db:"metadata"`
}

type ArticleRepository

type ArticleRepository struct {
	*drel.Repository[Article]
}

func (*ArticleRepository) FindByID

func (r *ArticleRepository) FindByID(ctx context.Context, id int) (*Article, error)

type TxArticleRepository

type TxArticleRepository struct {
	*drel.TxRepository[Article]
}

func (*TxArticleRepository) FindByID

func (r *TxArticleRepository) FindByID(ctx context.Context, id int) (*Article, error)

Jump to

Keyboard shortcuts

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