package audit import ( "encoding/json" "git.iwork-ai.com/xdc/iqudo-top1/internal/auth" "git.iwork-ai.com/xdc/iqudo-top1/internal/model" "gorm.io/datatypes" "gorm.io/gorm" ) func Record(db *gorm.DB, principal auth.Principal, action, resource string, resourceID uint64, payload interface{}) error { data, err := json.Marshal(payload) if err != nil { return err } return db.Create(&model.AuditLog{TenantID: principal.TenantID, UserID: principal.UserID, Action: action, Resource: resource, ResourceID: resourceID, Payload: datatypes.JSON(data)}).Error }