Files
ezbookkeeping/pkg/converters/qif/qif_data.go
T
2025-06-20 00:55:59 +08:00

125 lines
4.3 KiB
Go

package qif
// qifTransactionClearedStatus represents the quicken interchange format (qif) transaction cleared status
type qifTransactionClearedStatus string
// Quicken interchange format transaction types
const (
qifClearedStatusUnreconciled qifTransactionClearedStatus = ""
qifClearedStatusCleared qifTransactionClearedStatus = "C"
qifClearedStatusReconciled qifTransactionClearedStatus = "R"
)
// qifTransactionType represents the quicken interchange format (qif) transaction type
type qifTransactionType string
// Quicken interchange format transaction types
const (
qifInvalidTransactionType qifTransactionType = ""
qifCheckTransactionType qifTransactionType = "KC"
qifDepositTransactionType qifTransactionType = "KD"
qifPaymentTransactionType qifTransactionType = "KP"
qifInvestmentTransactionType qifTransactionType = "KI"
qifElectronicPayeeTransactionType qifTransactionType = "KE"
)
// qifCategoryType represents the quicken interchange format (qif) category type
type qifCategoryType string
// Quicken interchange format category types
const (
qifIncomeTransaction qifCategoryType = "I"
qifExpenseTransaction qifCategoryType = "E"
)
// qifData defines the structure of quicken interchange format (qif) data
type qifData struct {
BankAccountTransactions []*qifTransactionData
CashAccountTransactions []*qifTransactionData
CreditCardAccountTransactions []*qifTransactionData
AssetAccountTransactions []*qifTransactionData
LiabilityAccountTransactions []*qifTransactionData
MemorizedTransactions []*qifMemorizedTransactionData
InvestmentAccountTransactions []*qifInvestmentTransactionData
Accounts []*qifAccountData
Categories []*qifCategoryData
Classes []*qifClassData
}
// qifTransactionData defines the structure of quicken interchange format (qif) transaction data
type qifTransactionData struct {
Date string
Amount string
ClearedStatus qifTransactionClearedStatus
Num string
Payee string
Memo string
Addresses []string
Category string
SubTransactionCategory []string
SubTransactionMemo []string
SubTransactionAmount []string
Account *qifAccountData
}
// qifInvestmentTransactionData defines the structure of quicken interchange format (qif) investment transaction data
type qifInvestmentTransactionData struct {
Date string
Action string
Security string
Price string
Quantity string
Amount string
ClearedStatus qifTransactionClearedStatus
Text string
Memo string
Commission string
AccountForTransfer string
AmountTransferred string
Account *qifAccountData
}
// qifMemorizedTransactionData defines the structure of quicken interchange format (qif) memorized transaction data
type qifMemorizedTransactionData struct {
qifTransactionData
TransactionType qifTransactionType
Amortization qifMemorizedTransactionAmortizationData
}
// qifMemorizedTransactionAmortizationData defines the structure of quicken interchange format (qif) memorized transaction amortization data
type qifMemorizedTransactionAmortizationData struct {
FirstPaymentDate string
TotalYearsForLoan string
NumberOfPayments string
NumberOfPeriodsPerYear string
InterestRate string
CurrentLoanBalance string
OriginalLoanAmount string
}
// qifAccountData defines the structure of quicken interchange format (qif) account data
type qifAccountData struct {
Name string
AccountType string
Description string
CreditLimit string
StatementBalanceDate string
StatementBalanceAmount string
}
// qifCategoryData defines the structure of quicken interchange format (qif) category data
type qifCategoryData struct {
Name string
Description string
TaxRelated bool
CategoryType qifCategoryType
BudgetAmount string
TaxScheduleInformation string
}
// qifClassData defines the structure of quicken interchange format (qif) class data
type qifClassData struct {
Name string
Description string
}