imprints

package
v0.0.21 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterRoutesWithGroup

func RegisterRoutesWithGroup(g *echo.Group, db *bun.DB, authMiddleware *auth.Middleware)

RegisterRoutesWithGroup registers imprint routes on a pre-configured group.

Types

type ListImprintsOptions

type ListImprintsOptions struct {
	Limit      *int
	Offset     *int
	LibraryID  *int
	LibraryIDs []int // Filter by multiple library IDs (for access control)
	Search     *string
	// contains filtered or unexported fields
}

type ListImprintsQuery

type ListImprintsQuery struct {
	Limit     int     `query:"limit" json:"limit,omitempty" default:"24" validate:"min=1,max=50"`
	Offset    int     `query:"offset" json:"offset,omitempty" validate:"min=0"`
	LibraryID *int    `query:"library_id" json:"library_id,omitempty" validate:"omitempty,min=1" tstype:"number"`
	Search    *string `query:"search" json:"search,omitempty" validate:"omitempty,max=100" tstype:"string"`
}

type MergeImprintsPayload

type MergeImprintsPayload struct {
	SourceID int `json:"source_id" validate:"required,min=1"`
}

type RetrieveImprintOptions

type RetrieveImprintOptions struct {
	ID        *int
	Name      *string
	LibraryID *int
}

type Service

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

func NewService

func NewService(db *bun.DB) *Service

func (*Service) CleanupOrphanedImprints

func (svc *Service) CleanupOrphanedImprints(ctx context.Context) (int, error)

CleanupOrphanedImprints deletes imprints with no file associations.

func (*Service) CreateImprint

func (svc *Service) CreateImprint(ctx context.Context, imprint *models.Imprint) error

func (*Service) DeleteImprint

func (svc *Service) DeleteImprint(ctx context.Context, imprintID int) error

DeleteImprint deletes an imprint and clears imprint_id from all associated files.

func (*Service) FindOrCreateImprint

func (svc *Service) FindOrCreateImprint(ctx context.Context, name string, libraryID int) (*models.Imprint, error)

FindOrCreateImprint finds an existing imprint or creates a new one (case-insensitive match).

func (*Service) GetFileCount

func (svc *Service) GetFileCount(ctx context.Context, imprintID int) (int, error)

GetFileCount returns the count of files with this imprint.

func (*Service) GetFiles

func (svc *Service) GetFiles(ctx context.Context, imprintID int) ([]*models.File, error)

GetFiles returns all files with this imprint.

func (*Service) ListImprints

func (svc *Service) ListImprints(ctx context.Context, opts ListImprintsOptions) ([]*models.Imprint, error)

func (*Service) ListImprintsWithTotal

func (svc *Service) ListImprintsWithTotal(ctx context.Context, opts ListImprintsOptions) ([]*models.Imprint, int, error)

func (*Service) MergeImprints

func (svc *Service) MergeImprints(ctx context.Context, targetID, sourceID int) error

MergeImprints merges sourceImprint into targetImprint (moves all file associations, deletes source).

func (*Service) RetrieveImprint

func (svc *Service) RetrieveImprint(ctx context.Context, opts RetrieveImprintOptions) (*models.Imprint, error)

func (*Service) UpdateImprint

func (svc *Service) UpdateImprint(ctx context.Context, imprint *models.Imprint, opts UpdateImprintOptions) error

type UpdateImprintOptions

type UpdateImprintOptions struct {
	Columns []string
}

type UpdateImprintPayload

type UpdateImprintPayload struct {
	Name *string `json:"name,omitempty" validate:"omitempty,min=1,max=300"`
}

Jump to

Keyboard shortcuts

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