feat: loans

This commit is contained in:
juancwu 2026-03-14 11:34:21 -04:00
commit ac7296b06e
No known key found for this signature in database
20 changed files with 3191 additions and 4 deletions

48
internal/model/receipt.go Normal file
View file

@ -0,0 +1,48 @@
package model
import "time"
type FundingSourceType string
const (
FundingSourceBalance FundingSourceType = "balance"
FundingSourceAccount FundingSourceType = "account"
)
type Receipt struct {
ID string `db:"id"`
LoanID string `db:"loan_id"`
SpaceID string `db:"space_id"`
Description string `db:"description"`
TotalAmountCents int `db:"total_amount_cents"`
Date time.Time `db:"date"`
RecurringReceiptID *string `db:"recurring_receipt_id"`
CreatedBy string `db:"created_by"`
CreatedAt time.Time `db:"created_at"`
UpdatedAt time.Time `db:"updated_at"`
}
type ReceiptFundingSource struct {
ID string `db:"id"`
ReceiptID string `db:"receipt_id"`
SourceType FundingSourceType `db:"source_type"`
AccountID *string `db:"account_id"`
AmountCents int `db:"amount_cents"`
LinkedExpenseID *string `db:"linked_expense_id"`
LinkedTransferID *string `db:"linked_transfer_id"`
}
type ReceiptWithSources struct {
Receipt
Sources []ReceiptFundingSource
}
type ReceiptFundingSourceWithAccount struct {
ReceiptFundingSource
AccountName string
}
type ReceiptWithSourcesAndAccounts struct {
Receipt
Sources []ReceiptFundingSourceWithAccount
}