1package backend23import (4 "context"56 "github.com/charmbracelet/log/v2"7 "github.com/charmbracelet/soft-serve/pkg/config"8 "github.com/charmbracelet/soft-serve/pkg/db"9 "github.com/charmbracelet/soft-serve/pkg/store"10 "github.com/charmbracelet/soft-serve/pkg/task"11)1213// Backend is the Soft Serve backend that handles users, repositories, and14// server settings management and operations.15type Backend struct {16 ctx context.Context17 cfg *config.Config18 db *db.DB19 store store.Store20 logger *log.Logger21 cache *cache22 manager *task.Manager23}2425// New returns a new Soft Serve backend.26func New(ctx context.Context, cfg *config.Config, db *db.DB, st store.Store) *Backend {27 logger := log.FromContext(ctx).WithPrefix("backend")28 b := &Backend{29 ctx: ctx,30 cfg: cfg,31 db: db,32 store: st,33 logger: logger,34 manager: task.NewManager(ctx),35 }3637 // TODO: implement a proper caching interface38 cache := newCache(b, 1000)39 b.cache = cache4041 return b42}