package model import ( "github.com/tech/sendico/pkg/db/storable" "github.com/tech/sendico/pkg/model" "go.mongodb.org/mongo-driver/bson/primitive" ) // PostingLine represents a single debit or credit line in a journal entry. type PostingLine struct { storable.Base `bson:",inline" json:",inline"` model.PermissionBound `bson:",inline" json:",inline"` JournalEntryRef primitive.ObjectID `bson:"journalEntryRef" json:"journalEntryRef"` AccountRef primitive.ObjectID `bson:"accountRef" json:"accountRef"` Amount string `bson:"amount" json:"amount"` // stored as string for exact decimal, positive = credit, negative = debit Currency string `bson:"currency" json:"currency"` // ISO 4217 currency code LineType LineType `bson:"lineType" json:"lineType"` // main, fee, spread, reversal } // Collection implements storable.Storable. func (*PostingLine) Collection() string { return PostingLinesCollection }