25 lines
988 B
Go
25 lines
988 B
Go
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
|
|
}
|