package employeecollection import ( "context" "gorm.io/gorm" "github.com/break/junhong_cmp_fiber/internal/model" ) // ApplicationAudit 描述核销申请、审批尝试记录与受影响账单的事实变化。 type ApplicationAudit struct { // EventID 是审计事件稳定标识,同一业务事实重复重放时保持相同值。 EventID string // ActionCode 是已注册的核销申请审计动作码。 ActionCode string // Summary 是给人工阅读的中文摘要。 Summary string // Application 是本次动作后的核销申请事实。 Application *model.EmployeeCollectionApplication // Attempt 是本次动作对应的审批尝试记录。 Attempt *model.EmployeeCollectionApplicationAttempt // Allocations 是本次动作涉及的分摊事实。 Allocations []*model.EmployeeCollectionApplicationAllocation // Bills 是本次动作影响的员工代收款账单事实。 Bills []*model.EmployeeCollectionBill // BeforeData 与 AfterData 是脱敏前后的字段快照,不得包含付款凭证内容。 BeforeData map[string]any AfterData map[string]any // CorrelationID 是申请链路标识。 CorrelationID string } // ApplicationAuditWriter 在员工代收款核销事务内追加统一 Audit Event。 type ApplicationAuditWriter interface { WriteEmployeeCollectionApplication(ctx context.Context, tx *gorm.DB, change ApplicationAudit) error }