Versions in this module Expand all Collapse all v1 v1.0.0 Sep 5, 2020 Changes in this version + var DuplicateCategoryName = errors.New("categories: Duplicate category name.") + var InvalidRename = errors.New("categories: Invalid rename") + var InvalidRenameWouldCauseCycle = errors.New("categories: Rename would cause a cycle.") + var MalformedCategoryName = errors.New("categories: Malformed catgory name") + var NeedExpenseIncomeCategory = errors.New("categories: Need expense/income category") + var NoParentCategory = errors.New("categories: No parent category") + var NoSuchCategory = errors.New("categories: No such category") + type AccountAdder interface + Add func(name string) (newId int64, err error) + type AccountDetail struct + func (a AccountDetail) Active() bool + func (a AccountDetail) Id() int64 + func (a AccountDetail) Name() string + type AccountDetailConsumer struct + Builder *CatDetailStoreBuilder + func (c *AccountDetailConsumer) CanConsume() bool + func (c *AccountDetailConsumer) Consume(ptr interface{}) + type AccountRemover interface + Remove func(id int64) error + type AccountUpdater interface + Update func(id int64, newName string) error + type CatDbRow struct + Active bool + Id int64 + Name string + ParentId int64 + type CatDetail struct + func MostPopularFirst(catDetails []CatDetail, catPopularity fin.CatPopularity, ...) []CatDetail + func (c CatDetail) Active() bool + func (c CatDetail) FullName() string + func (c CatDetail) Id() fin.Cat + type CatDetailConsumer struct + Builder *CatDetailStoreBuilder + Type fin.CatType + func (c *CatDetailConsumer) CanConsume() bool + func (c *CatDetailConsumer) Consume(ptr interface{}) + type CatDetailStore struct + func (cds CatDetailStore) AccountAdd(name string, adder AccountAdder) (updatedStore CatDetailStore, newId int64, err error) + func (cds CatDetailStore) AccountDetailById(id int64) AccountDetail + func (cds CatDetailStore) AccountDetailByName(name string) (accountDetail AccountDetail, exists bool) + func (cds CatDetailStore) AccountRemove(id int64, remover AccountRemover) (updatedStore CatDetailStore, err error) + func (cds CatDetailStore) AccountRename(id int64, name string, updater AccountUpdater) (updatedStore CatDetailStore, err error) + func (cds CatDetailStore) ActiveAccountDetails() []AccountDetail + func (cds CatDetailStore) ActiveCatDetails(accounts bool) []CatDetail + func (cds CatDetailStore) Add(name string, adder CategoryAdder) (updatedStore CatDetailStore, newId fin.Cat, err error) + func (cds CatDetailStore) DetailByFullName(fullName string) (catDetail CatDetail, exists bool) + func (cds CatDetailStore) DetailById(cat fin.Cat) CatDetail + func (cds CatDetailStore) DetailsByIds(cats fin.CatSet) []CatDetail + func (cds CatDetailStore) Filter(cat fin.Cat, includeChildren bool) fin.CatFilter + func (cds CatDetailStore) ImmediateParent(cat fin.Cat) fin.Cat + func (cds CatDetailStore) InactiveDetailByFullName(fullName string) (catDetail CatDetail, exists bool) + func (cds CatDetailStore) IsChildOf(childCat, parentCat fin.Cat) bool + func (cds CatDetailStore) LeafNameById(cat fin.Cat) string + func (cds CatDetailStore) PurgeableAccounts(accountSet fin.AccountSet) fin.AccountSet + func (cds CatDetailStore) PurgeableCats(total fin.CatTotals) fin.CatSet + func (cds CatDetailStore) Remove(cat fin.Cat, remover CategoryRemover) (updatedStore CatDetailStore, err error) + func (cds CatDetailStore) Rename(id fin.Cat, newName string, updater CategoryUpdater) (updatedStore CatDetailStore, err error) + func (cds CatDetailStore) RollUp(totals fin.CatTotals) (rolledUp fin.CatTotals, children map[fin.Cat]fin.CatSet) + func (cds CatDetailStore) SortedCatRecs(catrecs []fin.CatRec) []fin.CatRec + type CatDetailStoreBuilder struct + func (cdsb *CatDetailStoreBuilder) AddAccount(account *fin.Account) *CatDetailStoreBuilder + func (cdsb *CatDetailStoreBuilder) AddCatDbRow(t fin.CatType, row *CatDbRow) *CatDetailStoreBuilder + func (cdsb *CatDetailStoreBuilder) Build() CatDetailStore + type CategoryAdder interface + Add func(t fin.CatType, row *CatDbRow) error + type CategoryRemover interface + Remove func(t fin.CatType, id int64) error + type CategoryUpdater interface + Update func(t fin.CatType, row *CatDbRow) error + type NamedCat struct + Id fin.Cat + Name string + func Ancestors(cds CatDetailStore, cat fin.Cat) []NamedCat