core/internal/app/publishers.go

39 lines
1.2 KiB
Go

package app
import (
"context"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain"
)
type ServerPublisher interface {
CmdSync(ctx context.Context, payloads ...domain.SyncServersCmdPayload) error
EventSynced(ctx context.Context, payloads ...domain.ServerSyncedEventPayload) error
}
type TribePublisher interface {
EventSynced(ctx context.Context, payloads ...domain.TribesSyncedEventPayload) error
}
type PlayerPublisher interface {
EventSynced(ctx context.Context, payloads ...domain.PlayersSyncedEventPayload) error
}
type VillagePublisher interface {
EventSynced(ctx context.Context, payloads ...domain.VillagesSyncedEventPayload) error
}
type EnnoblementPublisher interface {
CmdSync(ctx context.Context, payloads ...domain.SyncEnnoblementsCmdPayload) error
EventSynced(ctx context.Context, payloads ...domain.EnnoblementsSyncedEventPayload) error
}
type SnapshotPublisher interface {
CmdCreate(ctx context.Context, payloads ...domain.CreateSnapshotsCmdPayload) error
EventCreated(ctx context.Context, payloads ...domain.SnapshotsCreatedEventPayload) error
}
type DataCleanupPublisher interface {
CmdCleanUp(ctx context.Context, payloads ...domain.CleanUpDataCmdPayload) error
}