package watermark import ( "context" "github.com/go-kratos/kratos/v2/log" ) // CQRSHandler holds all Watermill event handlers. type CQRSHandler struct { log *log.Helper } // NewCQRSHandler creates a new CQRSHandler. func NewCQRSHandler(logger log.Logger) *CQRSHandler { return &CQRSHandler{log: log.NewHelper(logger)} } // OnFileUploaded handles the FileUploadedEvent. func (h *CQRSHandler) OnFileUploaded(ctx context.Context, event *FileUploadedEvent) error { h.log.Infof("event: file uploaded, bucket=%s key=%s size=%d", event.BucketName, event.ObjectKey, event.Size) return nil } // OnFileDeleted handles the FileDeletedEvent. func (h *CQRSHandler) OnFileDeleted(ctx context.Context, event *FileDeletedEvent) error { h.log.Infof("event: file deleted, bucket=%s key=%s", event.BucketName, event.ObjectKey) return nil } // OnFolderCreated handles the FolderCreatedEvent. func (h *CQRSHandler) OnFolderCreated(ctx context.Context, event *FolderCreatedEvent) error { h.log.Infof("event: folder created, id=%s name=%s owner=%s", event.FolderID, event.Name, event.OwnerID) return nil } // OnFolderDeleted handles the FolderDeletedEvent. func (h *CQRSHandler) OnFolderDeleted(ctx context.Context, event *FolderDeletedEvent) error { h.log.Infof("event: folder deleted, id=%s owner=%s", event.FolderID, event.OwnerID) return nil } // OnShareCreated handles the ShareCreatedEvent. func (h *CQRSHandler) OnShareCreated(ctx context.Context, event *ShareCreatedEvent) error { h.log.Infof("event: share created, id=%s token=%s resource=%s/%s by=%s", event.ShareID, event.Token, event.ResourceType, event.ResourceID, event.CreatedBy) return nil } // OnShareDownloaded handles the ShareDownloadedEvent. func (h *CQRSHandler) OnShareDownloaded(ctx context.Context, event *ShareDownloadedEvent) error { h.log.Infof("event: share downloaded, token=%s", event.Token) return nil }