init
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
package domain
|
||||
|
||||
// Money is an exact decimal string bounded to signed 64-bit ten-thousandths.
|
||||
type Money string
|
||||
|
||||
type Account struct {
|
||||
ID string `json:"id"`
|
||||
DisplayName string `json:"display_name"`
|
||||
Institution string `json:"institution"`
|
||||
Currency string `json:"currency"`
|
||||
ExternalAccountID string `json:"external_account_id,omitempty"`
|
||||
IBAN string `json:"iban,omitempty"`
|
||||
Active bool `json:"active"`
|
||||
}
|
||||
type Facts struct {
|
||||
ID string `json:"id"`
|
||||
Source string `json:"source"`
|
||||
AccountID string `json:"account_id"`
|
||||
BookingDate string `json:"booking_date"`
|
||||
ValueDate string `json:"value_date,omitempty"`
|
||||
Amount Money `json:"amount"`
|
||||
Currency string `json:"currency"`
|
||||
RawDescription string `json:"raw_description"`
|
||||
ExternalID string `json:"external_id,omitempty"`
|
||||
Fingerprint string `json:"fingerprint"`
|
||||
Counterparty string `json:"counterparty,omitempty"`
|
||||
CounterpartyIBAN string `json:"counterparty_iban,omitempty"`
|
||||
}
|
||||
type Provenance struct {
|
||||
Source string `json:"source"`
|
||||
Model string `json:"model,omitempty"`
|
||||
Timestamp string `json:"timestamp,omitempty"`
|
||||
Error string `json:"error,omitempty"`
|
||||
}
|
||||
type Enrichment struct {
|
||||
Kind string `json:"kind"`
|
||||
MerchantID string `json:"merchant_id,omitempty"`
|
||||
CategoryID string `json:"category_id,omitempty"`
|
||||
TagIDs []string `json:"tag_ids"`
|
||||
TransferPeerID string `json:"transfer_peer_id,omitempty"`
|
||||
Classification Provenance `json:"classification"`
|
||||
}
|
||||
type Transaction struct {
|
||||
Facts Facts `json:"facts"`
|
||||
Enrichment Enrichment `json:"enrichment"`
|
||||
}
|
||||
type Category struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
ParentID string `json:"parent_id,omitempty"`
|
||||
Kind string `json:"kind"`
|
||||
}
|
||||
type Tag struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
type Merchant struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Aliases []string `json:"aliases"`
|
||||
DefaultCategoryID string `json:"default_category_id,omitempty"`
|
||||
DefaultTagIDs []string `json:"default_tag_ids"`
|
||||
UseDefaults bool `json:"use_defaults"`
|
||||
}
|
||||
type Dataset struct {
|
||||
Accounts []Account `json:"accounts"`
|
||||
Categories []Category `json:"categories"`
|
||||
Tags []Tag `json:"tags"`
|
||||
Merchants []Merchant `json:"merchants"`
|
||||
Transactions []Transaction `json:"transactions"`
|
||||
}
|
||||
|
||||
const ExpenseFallback = "cat_expenses_unclassified"
|
||||
const IncomeFallback = "cat_income_unclassified"
|
||||
Reference in New Issue
Block a user