1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| package svc
import ( "context"
"github.com/jmoiron/sqlx"
"{{{ .Package }}}/app/lib/filter"{{{ if .HasModule "search" }}} "{{{ .Package }}}/app/lib/search/result"{{{ end }}} "{{{ .Package }}}/app/util" )
type ServiceBase[Mdl Model, Seq any] interface { ListSQL(ctx context.Context, tx *sqlx.Tx, sql string, logger util.Logger, values ...any) (Seq, error) ListWhere(ctx context.Context, tx *sqlx.Tx, where string, params *filter.Params, logger util.Logger, values ...any) (Seq, error) Random(ctx context.Context, tx *sqlx.Tx, logger util.Logger) (Mdl, error) Create(ctx context.Context, tx *sqlx.Tx, logger util.Logger, models ...Mdl) error CreateChunked(ctx context.Context, tx *sqlx.Tx, chunkSize int, progress *util.Progress, logger util.Logger, models ...Mdl) error Update(ctx context.Context, tx *sqlx.Tx, model Mdl, logger util.Logger) error Save(ctx context.Context, tx *sqlx.Tx, logger util.Logger, models ...Mdl) error SaveChunked(ctx context.Context, tx *sqlx.Tx, chunkSize int, progress *util.Progress, logger util.Logger, models ...Mdl) error DeleteWhere(ctx context.Context, tx *sqlx.Tx, wc string, expected int, logger util.Logger, values ...any) error }
type Service[Mdl Model, Seq any] interface { ServiceBase[Mdl, Seq] Count(ctx context.Context, tx *sqlx.Tx, whereClause string, logger util.Logger, args ...any) (int, error) List(ctx context.Context, tx *sqlx.Tx, params *filter.Params, logger util.Logger) (Seq, error) }{{{ if .HasModule "search" }}}
type ServiceSearch[Seq any] interface { Search(ctx context.Context, query string, tx *sqlx.Tx, params *filter.Params, logger util.Logger) (Seq, error) }
type ServiceSearchEntries interface { SearchEntries(ctx context.Context, query string, tx *sqlx.Tx, params *filter.Params, logger util.Logger) (result.Results, error) }{{{ end }}}
type ServiceID[Mdl Model, Seq any, ID any] interface { Service[Mdl, Seq] Get(ctx context.Context, tx *sqlx.Tx, id ID, logger util.Logger) (Mdl, error) GetMultiple(ctx context.Context, tx *sqlx.Tx, params *filter.Params, logger util.Logger, ids ...ID) (Seq, error) }
type ServiceSoftDelete[Mdl Model, Seq any] interface { ServiceBase[Mdl, Seq] Count(ctx context.Context, tx *sqlx.Tx, whereClause string, includeDeleted bool, logger util.Logger, args ...any) (int, error) List(ctx context.Context, tx *sqlx.Tx, params *filter.Params, includeDeleted bool, logger util.Logger) (Seq, error) }
type ServiceSoftDeleteID[Mdl Model, Seq any, ID any] interface { ServiceSoftDelete[Mdl, Seq] Get(ctx context.Context, tx *sqlx.Tx, id ID, includeDeleted bool, logger util.Logger) (Mdl, error) GetMultiple(ctx context.Context, tx *sqlx.Tx, params *filter.Params, includeDeleted bool, logger util.Logger, ids ...ID) (Seq, error) }
type ServiceEvents[Mdl Model, ID any] interface { Create(ctx context.Context, tx *sqlx.Tx, logger util.Logger, models ...Mdl) error Save(ctx context.Context, tx *sqlx.Tx, logger util.Logger, models ...Mdl) error Delete(ctx context.Context, tx *sqlx.Tx, logger util.Logger, ids ...ID) error }
|