usecase

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package usecase account implementation

Index

Constants

This section is empty.

Variables

View Source
var ErrOwnerRequired = errors.New("owner is required")

Functions

This section is empty.

Types

type AccountUsecase

type AccountUsecase[TUser user.Model, TAccount account.Model] struct {
	// contains filtered or unexported fields
}

AccountUsecase provides bussiness logic for account access

func NewAccountUsecase

func NewAccountUsecase[TUser user.Model, TAccount account.Model](
	userRepo user.Repository[TUser],
	accountRepo account.SessionRepository[TUser, TAccount],
	memberRepo account.MemberRepository[TUser, TAccount],
) *AccountUsecase[TUser, TAccount]

NewAccountUsecase object controller

func (*AccountUsecase[TUser, TAccount]) Count

func (a *AccountUsecase[TUser, TAccount]) Count(ctx context.Context, opts ...account.QOption) (int64, error)

Count of accounts by filter

func (*AccountUsecase[TUser, TAccount]) Delete

func (a *AccountUsecase[TUser, TAccount]) Delete(ctx context.Context, id uint64) error

Delete delites record by ID

func (*AccountUsecase[TUser, TAccount]) EmptyObject added in v0.5.0

func (a *AccountUsecase[TUser, TAccount]) EmptyObject() TAccount

EmptyObject returns a new empty account object of type TAccount.

func (*AccountUsecase[TUser, TAccount]) FetchList

func (a *AccountUsecase[TUser, TAccount]) FetchList(ctx context.Context, opts ...account.QOption) ([]TAccount, error)

FetchList of accounts by filter

func (*AccountUsecase[TUser, TAccount]) Get

func (a *AccountUsecase[TUser, TAccount]) Get(ctx context.Context, id uint64) (TAccount, error)

Get returns the group by ID if have access

func (*AccountUsecase[TUser, TAccount]) Register

func (a *AccountUsecase[TUser, TAccount]) Register(ctx context.Context, ownerObj TUser, accountObj TAccount) (uint64, error)

Register new account with owner if not exists (requires email + password repositories on userRepo).

func (*AccountUsecase[TUser, TAccount]) Update added in v0.5.0

func (a *AccountUsecase[TUser, TAccount]) Update(ctx context.Context, accountObj TAccount) (uint64, error)

Update updates the account if have access, or creates new one if ID is 0

type MemberUsecase added in v0.4.0

type MemberUsecase[TUser user.Model, TAccount account.Model] struct {
	// contains filtered or unexported fields
}

MemberUsecase provides bussiness logic for account members

func NewMemberUsecase added in v0.4.0

func NewMemberUsecase[TUser user.Model, TAccount account.Model](
	userRepo user.Repository[TUser],
	accountRepo account.SessionRepository[TUser, TAccount],
	memberRepo account.MemberRepository[TUser, TAccount],
) *MemberUsecase[TUser, TAccount]

NewMemberUsecase object controller

func (*MemberUsecase[TUser, TAccount]) CountMembers added in v0.4.0

func (a *MemberUsecase[TUser, TAccount]) CountMembers(ctx context.Context, opts ...account.QOption) (int64, error)

CountMembers returns the count of members from account

func (*MemberUsecase[TUser, TAccount]) EmptyObject added in v0.5.0

func (a *MemberUsecase[TUser, TAccount]) EmptyObject() *account.Member[TUser, TAccount]

EmptyObject returns a new empty member object of type Member[TUser, TAccount].

func (*MemberUsecase[TUser, TAccount]) FetchListMembers added in v0.4.0

func (a *MemberUsecase[TUser, TAccount]) FetchListMembers(ctx context.Context, opts ...account.QOption) (_ []*account.Member[TUser, TAccount], err error)

FetchListMembers returns the list of members from account

func (*MemberUsecase[TUser, TAccount]) InviteMember added in v0.4.0

func (a *MemberUsecase[TUser, TAccount]) InviteMember(ctx context.Context, accountID, userID uint64, roles ...string) (*account.Member[TUser, TAccount], error)

InviteMember into account by email (requires email repository on userRepo).

func (*MemberUsecase[TUser, TAccount]) LinkMember added in v0.4.0

func (a *MemberUsecase[TUser, TAccount]) LinkMember(ctx context.Context, accountObj TAccount, isAdmin bool, members ...TUser) error

LinkMember into account

func (*MemberUsecase[TUser, TAccount]) SetAccountMemeberRoles added in v0.4.0

func (a *MemberUsecase[TUser, TAccount]) SetAccountMemeberRoles(ctx context.Context, accountID, userID uint64, roles ...string) (*account.Member[TUser, TAccount], error)

SetAccountMemeberRoles into account

func (*MemberUsecase[TUser, TAccount]) SetMemberRoles added in v0.4.0

func (a *MemberUsecase[TUser, TAccount]) SetMemberRoles(ctx context.Context, memberID uint64, roles ...string) (*account.Member[TUser, TAccount], error)

SetMemberRoles into account

func (*MemberUsecase[TUser, TAccount]) UnlinkAccountMember added in v0.4.0

func (a *MemberUsecase[TUser, TAccount]) UnlinkAccountMember(ctx context.Context, memberID uint64) error

UnlinkAccountMember from the account

func (*MemberUsecase[TUser, TAccount]) UnlinkMember added in v0.4.0

func (a *MemberUsecase[TUser, TAccount]) UnlinkMember(ctx context.Context, accountObj TAccount, members ...TUser) error

UnlinkMember from the account

Jump to

Keyboard shortcuts

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