feat: transaction activity audit and account activity audit
This commit is contained in:
parent
ca7b2ff74f
commit
c96595d41e
19 changed files with 1259 additions and 20 deletions
18
internal/model/account_activity.go
Normal file
18
internal/model/account_activity.go
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// AccountActivityRow is a unified row representing either an account-scoped space
|
||||
// audit entry or a transaction audit entry that belongs to the account. Exactly one
|
||||
// of SpaceLog / TxLog is set.
|
||||
type AccountActivityRow struct {
|
||||
SpaceLog *SpaceAuditLogWithActor
|
||||
TxLog *TransactionAuditLogWithActor
|
||||
}
|
||||
|
||||
func (r AccountActivityRow) Timestamp() time.Time {
|
||||
if r.SpaceLog != nil {
|
||||
return r.SpaceLog.CreatedAt
|
||||
}
|
||||
return r.TxLog.CreatedAt
|
||||
}
|
||||
|
|
@ -11,6 +11,9 @@ const (
|
|||
SpaceAuditActionMemberJoined SpaceAuditAction = "member.joined"
|
||||
SpaceAuditActionMemberRemoved SpaceAuditAction = "member.removed"
|
||||
SpaceAuditActionInviteCancelled SpaceAuditAction = "invite.cancelled"
|
||||
SpaceAuditActionAccountCreated SpaceAuditAction = "account.created"
|
||||
SpaceAuditActionAccountRenamed SpaceAuditAction = "account.renamed"
|
||||
SpaceAuditActionAccountDeleted SpaceAuditAction = "account.deleted"
|
||||
)
|
||||
|
||||
type SpaceAuditLog struct {
|
||||
|
|
|
|||
26
internal/model/transaction_audit_log.go
Normal file
26
internal/model/transaction_audit_log.go
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
type TransactionAuditAction string
|
||||
|
||||
const (
|
||||
TransactionAuditActionCreated TransactionAuditAction = "transaction.created"
|
||||
TransactionAuditActionEdited TransactionAuditAction = "transaction.edited"
|
||||
TransactionAuditActionDeleted TransactionAuditAction = "transaction.deleted"
|
||||
)
|
||||
|
||||
type TransactionAuditLog struct {
|
||||
ID string `db:"id"`
|
||||
TransactionID string `db:"transaction_id"`
|
||||
ActorID *string `db:"actor_id"`
|
||||
Action TransactionAuditAction `db:"action"`
|
||||
Metadata []byte `db:"metadata"`
|
||||
CreatedAt time.Time `db:"created_at"`
|
||||
}
|
||||
|
||||
type TransactionAuditLogWithActor struct {
|
||||
TransactionAuditLog
|
||||
ActorName *string `db:"actor_name"`
|
||||
ActorEmail *string `db:"actor_email"`
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue