fix: move implementation to "internal" package
This commit was merged in pull request #138.
This commit is contained in:
41
internal/types/transaction.go
Normal file
41
internal/types/transaction.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
// At the center of the application is the transaction.
|
||||
//
|
||||
// Every piece of data should be calculated based on transactions.
|
||||
// This means potential calculation errors can be fixed later in time.
|
||||
//
|
||||
// If it becomes necessary to precalculate snapshots for performance reasons, this can be done in the future.
|
||||
// But the transaction should always be the source of truth.
|
||||
type Transaction struct {
|
||||
Id uuid.UUID `db:"id"`
|
||||
UserId uuid.UUID `db:"user_id"`
|
||||
|
||||
Timestamp time.Time `db:"timestamp"`
|
||||
Party string `db:"party"`
|
||||
Description string `db:"description"`
|
||||
|
||||
AccountId *uuid.UUID `db:"account_id"`
|
||||
TreasureChestId *uuid.UUID `db:"treasure_chest_id"`
|
||||
Value int64 `db:"value"`
|
||||
|
||||
// If an error is present, then the transaction is not valid and should not be used for calculations.
|
||||
Error *string `db:"error"`
|
||||
CreatedAt time.Time `db:"created_at"`
|
||||
// Either a user_id or a transaction_recurring_id
|
||||
CreatedBy uuid.UUID `db:"created_by"`
|
||||
UpdatedAt *time.Time `db:"updated_at"`
|
||||
UpdatedBy *uuid.UUID `db:"updated_by"`
|
||||
}
|
||||
|
||||
type TransactionItemsFilter struct {
|
||||
AccountId string
|
||||
TreasureChestId string
|
||||
Error string
|
||||
}
|
||||
Reference in New Issue
Block a user