series

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: 19 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 series routes on a pre-configured group.

Types

type ListSeriesOptions

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

type ListSeriesQuery

type ListSeriesQuery 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 MergeSeriesPayload

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

type RetrieveSeriesOptions

type RetrieveSeriesOptions 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) CleanupOrphanedSeries

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

CleanupOrphanedSeries soft-deletes series with no books.

func (*Service) CreateSeries

func (svc *Service) CreateSeries(ctx context.Context, series *models.Series) error

func (*Service) DeleteSeries

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

DeleteSeries soft-deletes a series.

func (*Service) FindOrCreateSeries

func (svc *Service) FindOrCreateSeries(ctx context.Context, name string, libraryID int, nameSource string) (*models.Series, error)

FindOrCreateSeries finds an existing series or creates a new one (case-insensitive match).

func (*Service) GetSeriesBookCount

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

GetSeriesBookCount returns the number of books in a series.

func (*Service) ListSeries

func (svc *Service) ListSeries(ctx context.Context, opts ListSeriesOptions) ([]*models.Series, error)

func (*Service) ListSeriesWithTotal

func (svc *Service) ListSeriesWithTotal(ctx context.Context, opts ListSeriesOptions) ([]*models.Series, int, error)

func (*Service) MergeSeries

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

MergeSeries merges sourceSeries into targetSeries (moves all books, soft-deletes source).

func (*Service) RestoreSeries

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

RestoreSeries restores a soft-deleted series.

func (*Service) RetrieveSeries

func (svc *Service) RetrieveSeries(ctx context.Context, opts RetrieveSeriesOptions) (*models.Series, error)

func (*Service) RetrieveSeriesByID

func (svc *Service) RetrieveSeriesByID(ctx context.Context, id int) (*models.Series, error)

RetrieveSeriesByID retrieves a series by its ID.

func (*Service) UpdateSeries

func (svc *Service) UpdateSeries(ctx context.Context, series *models.Series, opts UpdateSeriesOptions) error

type UpdateSeriesOptions

type UpdateSeriesOptions struct {
	Columns []string
}

type UpdateSeriesPayload

type UpdateSeriesPayload struct {
	Name        *string `json:"name,omitempty" validate:"omitempty,max=300"`
	SortName    *string `json:"sort_name,omitempty" validate:"omitempty,max=300"`
	Description *string `json:"description,omitempty" validate:"omitempty,max=2000"`
}

Jump to

Keyboard shortcuts

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