Documentation
¶
Index ¶
- Variables
- func NewDefinitionRepository(db *bun.DB) repository.Repository[*Definition]
- func NewDefinitionVersionRepository(db *bun.DB) repository.Repository[*DefinitionVersion]
- func NewInstanceRepository(db *bun.DB) repository.Repository[*Instance]
- func NewInstanceVersionRepository(db *bun.DB) repository.Repository[*InstanceVersion]
- func NewTranslationRepository(db *bun.DB) repository.Repository[*Translation]
- func ResolveDefinitionMigrationStatus(schema map[string]any, schemaVersion string) string
- type AddTranslationInput
- type BackfillOptions
- type BackfillReport
- type BlockVersionSnapshot
- type BlockVersionTranslationSnapshot
- type BunDefinitionRepository
- func (r *BunDefinitionRepository) Create(ctx context.Context, definition *Definition) (*Definition, error)
- func (r *BunDefinitionRepository) Delete(ctx context.Context, id uuid.UUID) error
- func (r *BunDefinitionRepository) GetByID(ctx context.Context, id uuid.UUID) (*Definition, error)
- func (r *BunDefinitionRepository) GetBySlug(ctx context.Context, slug string, env ...string) (*Definition, error)
- func (r *BunDefinitionRepository) List(ctx context.Context, env ...string) ([]*Definition, error)
- func (r *BunDefinitionRepository) Update(ctx context.Context, definition *Definition) (*Definition, error)
- type BunDefinitionVersionRepository
- func (r *BunDefinitionVersionRepository) Create(ctx context.Context, version *DefinitionVersion) (*DefinitionVersion, error)
- func (r *BunDefinitionVersionRepository) GetByDefinitionAndVersion(ctx context.Context, definitionID uuid.UUID, version string) (*DefinitionVersion, error)
- func (r *BunDefinitionVersionRepository) GetByID(ctx context.Context, id uuid.UUID) (*DefinitionVersion, error)
- func (r *BunDefinitionVersionRepository) ListByDefinition(ctx context.Context, definitionID uuid.UUID) ([]*DefinitionVersion, error)
- func (r *BunDefinitionVersionRepository) Update(ctx context.Context, version *DefinitionVersion) (*DefinitionVersion, error)
- type BunInstanceRepository
- func (r *BunInstanceRepository) Create(ctx context.Context, instance *Instance) (*Instance, error)
- func (r *BunInstanceRepository) Delete(ctx context.Context, id uuid.UUID) error
- func (r *BunInstanceRepository) GetByID(ctx context.Context, id uuid.UUID) (*Instance, error)
- func (r *BunInstanceRepository) ListByDefinition(ctx context.Context, definitionID uuid.UUID) ([]*Instance, error)
- func (r *BunInstanceRepository) ListByPage(ctx context.Context, pageID uuid.UUID) ([]*Instance, error)
- func (r *BunInstanceRepository) ListGlobal(ctx context.Context) ([]*Instance, error)
- func (r *BunInstanceRepository) Update(ctx context.Context, instance *Instance) (*Instance, error)
- type BunInstanceVersionRepository
- func (r *BunInstanceVersionRepository) Create(ctx context.Context, version *InstanceVersion) (*InstanceVersion, error)
- func (r *BunInstanceVersionRepository) GetLatest(ctx context.Context, instanceID uuid.UUID) (*InstanceVersion, error)
- func (r *BunInstanceVersionRepository) GetVersion(ctx context.Context, instanceID uuid.UUID, number int) (*InstanceVersion, error)
- func (r *BunInstanceVersionRepository) ListByInstance(ctx context.Context, instanceID uuid.UUID) ([]*InstanceVersion, error)
- func (r *BunInstanceVersionRepository) Update(ctx context.Context, version *InstanceVersion) (*InstanceVersion, error)
- type BunTranslationRepository
- func (r *BunTranslationRepository) Create(ctx context.Context, translation *Translation) (*Translation, error)
- func (r *BunTranslationRepository) Delete(ctx context.Context, id uuid.UUID) error
- func (r *BunTranslationRepository) GetByInstanceAndLocale(ctx context.Context, instanceID uuid.UUID, localeID uuid.UUID) (*Translation, error)
- func (r *BunTranslationRepository) ListByInstance(ctx context.Context, instanceID uuid.UUID) ([]*Translation, error)
- func (r *BunTranslationRepository) Update(ctx context.Context, translation *Translation) (*Translation, error)
- type ConflictReportOptions
- type ContentPageResolver
- type CreateDefinitionVersionInput
- type CreateInstanceDraftRequest
- type CreateInstanceInput
- type Definition
- type DefinitionRepository
- type DefinitionVersion
- type DefinitionVersionRepository
- type DeleteDefinitionRequest
- type DeleteInstanceRequest
- type DeleteTranslationRequest
- type EmbeddedBlockBridge
- func (b *EmbeddedBlockBridge) BackfillFromLegacy(ctx context.Context, opts BackfillOptions) (BackfillReport, error)
- func (b *EmbeddedBlockBridge) InstancesFromEmbeddedContent(ctx context.Context, contentID uuid.UUID, ...) ([]*Instance, error)
- func (b *EmbeddedBlockBridge) ListConflicts(ctx context.Context, opts ConflictReportOptions) ([]content.EmbeddedBlockConflict, error)
- func (b *EmbeddedBlockBridge) MergeLegacyBlocks(ctx context.Context, record *content.Content) error
- func (b *EmbeddedBlockBridge) MigrateEmbeddedBlocks(ctx context.Context, locale string, blocks []map[string]any) ([]map[string]any, error)
- func (b *EmbeddedBlockBridge) PreviewInstancesFromEmbeddedContent(ctx context.Context, contentID uuid.UUID, ...) ([]*Instance, error)
- func (b *EmbeddedBlockBridge) SyncEmbeddedBlocks(ctx context.Context, contentID uuid.UUID, ...) error
- func (b *EmbeddedBlockBridge) ValidateBlockAvailability(_ context.Context, contentType string, ...) error
- func (b *EmbeddedBlockBridge) ValidateEmbeddedBlocks(ctx context.Context, locale string, blocks []map[string]any, ...) error
- type EmbeddedBlockBridgeOption
- func WithEmbeddedBlocksClock(clock func() time.Time) EmbeddedBlockBridgeOption
- func WithEmbeddedBlocksContentRepository(repo content.ContentRepository) EmbeddedBlockBridgeOption
- func WithEmbeddedBlocksDefaultLocale(locale string) EmbeddedBlockBridgeOption
- func WithEmbeddedBlocksDefaultRegion(region string) EmbeddedBlockBridgeOption
- func WithEmbeddedBlocksLogger(logger interfaces.Logger) EmbeddedBlockBridgeOption
- func WithEmbeddedBlocksTranslationReader(reader content.ContentTranslationReader) EmbeddedBlockBridgeOption
- type IDGenerator
- type Instance
- type InstanceRepository
- type InstanceVersion
- type InstanceVersionRepository
- type MigrationFunc
- type MigrationStep
- type Migrator
- type NotFoundError
- type PublishInstanceDraftRequest
- type RegisterDefinitionInput
- type Registry
- func (r *Registry) Latest(name string) (RegisterDefinitionInput, bool)
- func (r *Registry) List() []RegisterDefinitionInput
- func (r *Registry) ListAllVersions() []RegisterDefinitionInput
- func (r *Registry) ListVersions(name string) []RegisterDefinitionInput
- func (r *Registry) Migrate(name, from, to string, payload map[string]any) (map[string]any, error)
- func (r *Registry) Migrator() *Migrator
- func (r *Registry) Register(input RegisterDefinitionInput)
- func (r *Registry) RegisterMigration(name, from, to string, fn MigrationFunc) error
- type RestoreInstanceVersionRequest
- type Service
- type ServiceOption
- func WithActivityEmitter(emitter *activity.Emitter) ServiceOption
- func WithClock(clock func() time.Time) ServiceOption
- func WithDefaultEnvironmentKey(key string) ServiceOption
- func WithDefinitionSlugNormalizer(normalizer slug.Normalizer) ServiceOption
- func WithDefinitionVersionRepository(repo DefinitionVersionRepository) ServiceOption
- func WithEnvironmentService(envSvc cmsenv.Service) ServiceOption
- func WithIDGenerator(generator IDGenerator) ServiceOption
- func WithInstanceVersionRepository(repo InstanceVersionRepository) ServiceOption
- func WithMediaService(mediaSvc media.Service) ServiceOption
- func WithRegistry(reg *Registry) ServiceOption
- func WithRequireActiveEnvironment(required bool) ServiceOption
- func WithRequireExplicitEnvironment(required bool) ServiceOption
- func WithRequireTranslations(required bool) ServiceOption
- func WithSchemaMigrator(migrator *Migrator) ServiceOption
- func WithShortcodeService(svc interfaces.ShortcodeService) ServiceOption
- func WithTranslationState(state *translationconfig.State) ServiceOption
- func WithTranslationsEnabled(enabled bool) ServiceOption
- func WithVersionRetentionLimit(limit int) ServiceOption
- func WithVersioningEnabled(enabled bool) ServiceOption
- type Translation
- type TranslationRepository
- type UpdateDefinitionInput
- type UpdateInstanceInput
- type UpdateTranslationInput
Constants ¶
This section is empty.
Variables ¶
var ( ErrEmbeddedBlockTypeRequired = errors.New("blocks: embedded block type required") ErrEmbeddedBlockDefinitionMissing = errors.New("blocks: embedded block definition missing") ErrEmbeddedBlocksBridgeUnwired = errors.New("blocks: embedded blocks bridge is not configured") )
var ( ErrDefinitionNameRequired = cmsblocks.ErrDefinitionNameRequired ErrDefinitionSlugRequired = cmsblocks.ErrDefinitionSlugRequired ErrDefinitionSlugInvalid = cmsblocks.ErrDefinitionSlugInvalid ErrDefinitionSlugExists = cmsblocks.ErrDefinitionSlugExists ErrDefinitionSchemaRequired = cmsblocks.ErrDefinitionSchemaRequired ErrDefinitionSchemaInvalid = cmsblocks.ErrDefinitionSchemaInvalid ErrDefinitionSchemaVersionInvalid = cmsblocks.ErrDefinitionSchemaVersionInvalid ErrDefinitionExists = cmsblocks.ErrDefinitionExists ErrDefinitionIDRequired = cmsblocks.ErrDefinitionIDRequired ErrDefinitionInUse = cmsblocks.ErrDefinitionInUse ErrDefinitionSoftDeleteUnsupported = cmsblocks.ErrDefinitionSoftDeleteUnsupported ErrDefinitionVersionRequired = cmsblocks.ErrDefinitionVersionRequired ErrDefinitionVersionExists = cmsblocks.ErrDefinitionVersionExists ErrDefinitionVersioningDisabled = cmsblocks.ErrDefinitionVersioningDisabled ErrInstanceDefinitionRequired = cmsblocks.ErrInstanceDefinitionRequired ErrInstanceRegionRequired = cmsblocks.ErrInstanceRegionRequired ErrInstancePositionInvalid = cmsblocks.ErrInstancePositionInvalid ErrInstanceUpdaterRequired = cmsblocks.ErrInstanceUpdaterRequired ErrInstanceSoftDeleteUnsupported = cmsblocks.ErrInstanceSoftDeleteUnsupported ErrTranslationContentRequired = cmsblocks.ErrTranslationContentRequired ErrTranslationExists = cmsblocks.ErrTranslationExists ErrTranslationLocaleRequired = cmsblocks.ErrTranslationLocaleRequired ErrTranslationSchemaInvalid = cmsblocks.ErrTranslationSchemaInvalid ErrTranslationNotFound = cmsblocks.ErrTranslationNotFound ErrTranslationMinimum = cmsblocks.ErrTranslationMinimum ErrTranslationsDisabled = cmsblocks.ErrTranslationsDisabled ErrInstanceIDRequired = cmsblocks.ErrInstanceIDRequired ErrVersioningDisabled = cmsblocks.ErrVersioningDisabled ErrInstanceVersionRequired = cmsblocks.ErrInstanceVersionRequired ErrInstanceVersionConflict = cmsblocks.ErrInstanceVersionConflict ErrInstanceVersionAlreadyPublished = cmsblocks.ErrInstanceVersionAlreadyPublished ErrInstanceVersionRetentionExceeded = cmsblocks.ErrInstanceVersionRetentionExceeded ErrMediaReferenceRequired = cmsblocks.ErrMediaReferenceRequired ErrBlockSchemaMigrationRequired = cmsblocks.ErrBlockSchemaMigrationRequired ErrBlockSchemaValidationFailed = cmsblocks.ErrBlockSchemaValidationFailed )
var BlockVersionSnapshotSchema = cmsblocks.BlockVersionSnapshotSchema
Functions ¶
func NewDefinitionRepository ¶
func NewDefinitionRepository(db *bun.DB) repository.Repository[*Definition]
func NewDefinitionVersionRepository ¶ added in v0.21.0
func NewDefinitionVersionRepository(db *bun.DB) repository.Repository[*DefinitionVersion]
NewDefinitionVersionRepository creates a repository for DefinitionVersion entities.
func NewInstanceRepository ¶
func NewInstanceRepository(db *bun.DB) repository.Repository[*Instance]
NewInstanceRepository creates a repository for Instance entities.
func NewInstanceVersionRepository ¶
func NewInstanceVersionRepository(db *bun.DB) repository.Repository[*InstanceVersion]
NewInstanceVersionRepository creates a repository for InstanceVersion entities.
func NewTranslationRepository ¶
func NewTranslationRepository(db *bun.DB) repository.Repository[*Translation]
NewTranslationRepository creates a repository for Translation entities.
Types ¶
type AddTranslationInput ¶
type AddTranslationInput = cmsblocks.AddTranslationInput
type BackfillOptions ¶ added in v0.21.0
BackfillOptions controls embedded block backfill behaviour.
type BackfillReport ¶ added in v0.21.0
BackfillReport captures backfill results.
type BlockVersionSnapshot ¶
type BlockVersionSnapshot = cmsblocks.BlockVersionSnapshot
type BlockVersionTranslationSnapshot ¶
type BlockVersionTranslationSnapshot = cmsblocks.BlockVersionTranslationSnapshot
type BunDefinitionRepository ¶
type BunDefinitionRepository struct {
// contains filtered or unexported fields
}
BunDefinitionRepository implements DefinitionRepository with optional caching.
func NewBunDefinitionRepository ¶
func NewBunDefinitionRepository(db *bun.DB) *BunDefinitionRepository
NewBunDefinitionRepository creates a definition repository without caching.
func NewBunDefinitionRepositoryWithCache ¶
func NewBunDefinitionRepositoryWithCache(db *bun.DB, cacheService cache.CacheService, serializer cache.KeySerializer) *BunDefinitionRepository
NewBunDefinitionRepositoryWithCache creates a definition repository with caching services.
func (*BunDefinitionRepository) Create ¶
func (r *BunDefinitionRepository) Create(ctx context.Context, definition *Definition) (*Definition, error)
func (*BunDefinitionRepository) GetByID ¶
func (r *BunDefinitionRepository) GetByID(ctx context.Context, id uuid.UUID) (*Definition, error)
func (*BunDefinitionRepository) GetBySlug ¶ added in v0.23.1
func (r *BunDefinitionRepository) GetBySlug(ctx context.Context, slug string, env ...string) (*Definition, error)
func (*BunDefinitionRepository) List ¶
func (r *BunDefinitionRepository) List(ctx context.Context, env ...string) ([]*Definition, error)
func (*BunDefinitionRepository) Update ¶ added in v0.2.0
func (r *BunDefinitionRepository) Update(ctx context.Context, definition *Definition) (*Definition, error)
type BunDefinitionVersionRepository ¶ added in v0.21.0
type BunDefinitionVersionRepository struct {
// contains filtered or unexported fields
}
BunDefinitionVersionRepository implements DefinitionVersionRepository with optional caching.
func NewBunDefinitionVersionRepository ¶ added in v0.21.0
func NewBunDefinitionVersionRepository(db *bun.DB) *BunDefinitionVersionRepository
NewBunDefinitionVersionRepository creates a definition version repository without caching.
func NewBunDefinitionVersionRepositoryWithCache ¶ added in v0.21.0
func NewBunDefinitionVersionRepositoryWithCache(db *bun.DB, cacheService cache.CacheService, serializer cache.KeySerializer) *BunDefinitionVersionRepository
NewBunDefinitionVersionRepositoryWithCache creates a definition version repository with caching services.
func (*BunDefinitionVersionRepository) Create ¶ added in v0.21.0
func (r *BunDefinitionVersionRepository) Create(ctx context.Context, version *DefinitionVersion) (*DefinitionVersion, error)
func (*BunDefinitionVersionRepository) GetByDefinitionAndVersion ¶ added in v0.21.0
func (r *BunDefinitionVersionRepository) GetByDefinitionAndVersion(ctx context.Context, definitionID uuid.UUID, version string) (*DefinitionVersion, error)
func (*BunDefinitionVersionRepository) GetByID ¶ added in v0.21.0
func (r *BunDefinitionVersionRepository) GetByID(ctx context.Context, id uuid.UUID) (*DefinitionVersion, error)
func (*BunDefinitionVersionRepository) ListByDefinition ¶ added in v0.21.0
func (r *BunDefinitionVersionRepository) ListByDefinition(ctx context.Context, definitionID uuid.UUID) ([]*DefinitionVersion, error)
func (*BunDefinitionVersionRepository) Update ¶ added in v0.21.0
func (r *BunDefinitionVersionRepository) Update(ctx context.Context, version *DefinitionVersion) (*DefinitionVersion, error)
type BunInstanceRepository ¶
type BunInstanceRepository struct {
// contains filtered or unexported fields
}
BunInstanceRepository implements InstanceRepository with optional caching.
func NewBunInstanceRepository ¶
func NewBunInstanceRepository(db *bun.DB) *BunInstanceRepository
NewBunInstanceRepository creates a block instance repository without caching.
func NewBunInstanceRepositoryWithCache ¶
func NewBunInstanceRepositoryWithCache(db *bun.DB, cacheService cache.CacheService, serializer cache.KeySerializer) *BunInstanceRepository
NewBunInstanceRepositoryWithCache creates a block instance repository with caching services.
func (*BunInstanceRepository) ListByDefinition ¶ added in v0.2.0
func (*BunInstanceRepository) ListByPage ¶
func (*BunInstanceRepository) ListGlobal ¶
func (r *BunInstanceRepository) ListGlobal(ctx context.Context) ([]*Instance, error)
type BunInstanceVersionRepository ¶
type BunInstanceVersionRepository struct {
// contains filtered or unexported fields
}
BunInstanceVersionRepository implements InstanceVersionRepository with optional caching.
func NewBunInstanceVersionRepository ¶
func NewBunInstanceVersionRepository(db *bun.DB) *BunInstanceVersionRepository
NewBunInstanceVersionRepository creates a block instance version repository without caching.
func NewBunInstanceVersionRepositoryWithCache ¶
func NewBunInstanceVersionRepositoryWithCache(db *bun.DB, cacheService cache.CacheService, serializer cache.KeySerializer) *BunInstanceVersionRepository
NewBunInstanceVersionRepositoryWithCache creates a block instance version repository with caching services.
func (*BunInstanceVersionRepository) Create ¶
func (r *BunInstanceVersionRepository) Create(ctx context.Context, version *InstanceVersion) (*InstanceVersion, error)
func (*BunInstanceVersionRepository) GetLatest ¶
func (r *BunInstanceVersionRepository) GetLatest(ctx context.Context, instanceID uuid.UUID) (*InstanceVersion, error)
func (*BunInstanceVersionRepository) GetVersion ¶
func (r *BunInstanceVersionRepository) GetVersion(ctx context.Context, instanceID uuid.UUID, number int) (*InstanceVersion, error)
func (*BunInstanceVersionRepository) ListByInstance ¶
func (r *BunInstanceVersionRepository) ListByInstance(ctx context.Context, instanceID uuid.UUID) ([]*InstanceVersion, error)
func (*BunInstanceVersionRepository) Update ¶
func (r *BunInstanceVersionRepository) Update(ctx context.Context, version *InstanceVersion) (*InstanceVersion, error)
type BunTranslationRepository ¶
type BunTranslationRepository struct {
// contains filtered or unexported fields
}
BunTranslationRepository implements TranslationRepository with optional caching.
func NewBunTranslationRepository ¶
func NewBunTranslationRepository(db *bun.DB) *BunTranslationRepository
NewBunTranslationRepository creates a translation repository without caching.
func NewBunTranslationRepositoryWithCache ¶
func NewBunTranslationRepositoryWithCache(db *bun.DB, cacheService cache.CacheService, serializer cache.KeySerializer) *BunTranslationRepository
NewBunTranslationRepositoryWithCache creates a translation repository with caching.
func (*BunTranslationRepository) Create ¶
func (r *BunTranslationRepository) Create(ctx context.Context, translation *Translation) (*Translation, error)
func (*BunTranslationRepository) GetByInstanceAndLocale ¶
func (r *BunTranslationRepository) GetByInstanceAndLocale(ctx context.Context, instanceID uuid.UUID, localeID uuid.UUID) (*Translation, error)
func (*BunTranslationRepository) ListByInstance ¶
func (r *BunTranslationRepository) ListByInstance(ctx context.Context, instanceID uuid.UUID) ([]*Translation, error)
func (*BunTranslationRepository) Update ¶ added in v0.2.0
func (r *BunTranslationRepository) Update(ctx context.Context, translation *Translation) (*Translation, error)
type ConflictReportOptions ¶ added in v0.21.0
ConflictReportOptions scopes conflict queries.
type ContentPageResolver ¶ added in v0.21.0
type ContentPageResolver interface {
PageIDsForContent(ctx context.Context, contentID uuid.UUID) ([]uuid.UUID, error)
}
ContentPageResolver maps content entries to page identifiers.
type CreateDefinitionVersionInput ¶ added in v0.21.0
type CreateDefinitionVersionInput = cmsblocks.CreateDefinitionVersionInput
type CreateInstanceDraftRequest ¶
type CreateInstanceDraftRequest = cmsblocks.CreateInstanceDraftRequest
type CreateInstanceInput ¶
type CreateInstanceInput = cmsblocks.CreateInstanceInput
type Definition ¶
type Definition = cmsblocks.Definition
type DefinitionRepository ¶
type DefinitionRepository interface {
Create(ctx context.Context, definition *Definition) (*Definition, error)
GetByID(ctx context.Context, id uuid.UUID) (*Definition, error)
GetBySlug(ctx context.Context, slug string, env ...string) (*Definition, error)
List(ctx context.Context, env ...string) ([]*Definition, error)
Update(ctx context.Context, definition *Definition) (*Definition, error)
Delete(ctx context.Context, id uuid.UUID) error
}
DefinitionRepository exposes persistence operations for block definitions.
func NewMemoryDefinitionRepository ¶
func NewMemoryDefinitionRepository() DefinitionRepository
NewMemoryDefinitionRepository constructs an "in memory" definition repository.
type DefinitionVersion ¶ added in v0.21.0
type DefinitionVersion = cmsblocks.DefinitionVersion
type DefinitionVersionRepository ¶ added in v0.21.0
type DefinitionVersionRepository interface {
Create(ctx context.Context, version *DefinitionVersion) (*DefinitionVersion, error)
GetByID(ctx context.Context, id uuid.UUID) (*DefinitionVersion, error)
GetByDefinitionAndVersion(ctx context.Context, definitionID uuid.UUID, version string) (*DefinitionVersion, error)
ListByDefinition(ctx context.Context, definitionID uuid.UUID) ([]*DefinitionVersion, error)
Update(ctx context.Context, version *DefinitionVersion) (*DefinitionVersion, error)
}
DefinitionVersionRepository exposes persistence operations for block definition versions.
func NewMemoryDefinitionVersionRepository ¶ added in v0.21.0
func NewMemoryDefinitionVersionRepository() DefinitionVersionRepository
NewMemoryDefinitionVersionRepository constructs an "in memory" definition version repository.
type DeleteDefinitionRequest ¶ added in v0.2.0
type DeleteDefinitionRequest = cmsblocks.DeleteDefinitionRequest
type DeleteInstanceRequest ¶ added in v0.2.0
type DeleteInstanceRequest = cmsblocks.DeleteInstanceRequest
type DeleteTranslationRequest ¶ added in v0.2.0
type DeleteTranslationRequest = cmsblocks.DeleteTranslationRequest
type EmbeddedBlockBridge ¶ added in v0.21.0
type EmbeddedBlockBridge struct {
// contains filtered or unexported fields
}
EmbeddedBlockBridge coordinates embedded block payloads with legacy block instances.
func NewEmbeddedBlockBridge ¶ added in v0.21.0
func NewEmbeddedBlockBridge(blocksSvc Service, locales content.LocaleRepository, resolver ContentPageResolver, opts ...EmbeddedBlockBridgeOption) *EmbeddedBlockBridge
NewEmbeddedBlockBridge constructs a bridge for embedded blocks.
func (*EmbeddedBlockBridge) BackfillFromLegacy ¶ added in v0.21.0
func (b *EmbeddedBlockBridge) BackfillFromLegacy(ctx context.Context, opts BackfillOptions) (BackfillReport, error)
BackfillFromLegacy writes embedded blocks into stored content translations.
func (*EmbeddedBlockBridge) InstancesFromEmbeddedContent ¶ added in v0.21.0
func (b *EmbeddedBlockBridge) InstancesFromEmbeddedContent(ctx context.Context, contentID uuid.UUID, translations []*content.ContentTranslation) ([]*Instance, error)
InstancesFromEmbeddedContent builds in-memory block instances from embedded payloads.
func (*EmbeddedBlockBridge) ListConflicts ¶ added in v0.21.0
func (b *EmbeddedBlockBridge) ListConflicts(ctx context.Context, opts ConflictReportOptions) ([]content.EmbeddedBlockConflict, error)
ListConflicts returns embedded-vs-legacy conflict reports.
func (*EmbeddedBlockBridge) MergeLegacyBlocks ¶ added in v0.21.0
MergeLegacyBlocks populates embedded block payloads when missing.
func (*EmbeddedBlockBridge) MigrateEmbeddedBlocks ¶ added in v0.21.0
func (b *EmbeddedBlockBridge) MigrateEmbeddedBlocks(ctx context.Context, locale string, blocks []map[string]any) ([]map[string]any, error)
MigrateEmbeddedBlocks upgrades embedded blocks to the latest schema version.
func (*EmbeddedBlockBridge) PreviewInstancesFromEmbeddedContent ¶ added in v0.21.0
func (b *EmbeddedBlockBridge) PreviewInstancesFromEmbeddedContent(ctx context.Context, contentID uuid.UUID, translations []*content.ContentTranslation) ([]*Instance, error)
PreviewInstancesFromEmbeddedContent resolves embedded blocks with in-memory migrations.
func (*EmbeddedBlockBridge) SyncEmbeddedBlocks ¶ added in v0.21.0
func (b *EmbeddedBlockBridge) SyncEmbeddedBlocks(ctx context.Context, contentID uuid.UUID, translations []content.ContentTranslationInput, actor uuid.UUID) error
SyncEmbeddedBlocks projects embedded blocks into legacy block instances (dual-write).
func (*EmbeddedBlockBridge) ValidateBlockAvailability ¶ added in v0.21.0
func (b *EmbeddedBlockBridge) ValidateBlockAvailability(_ context.Context, contentType string, availability cmsschema.BlockAvailability, blocks []map[string]any) error
ValidateBlockAvailability enforces content-type block availability rules.
func (*EmbeddedBlockBridge) ValidateEmbeddedBlocks ¶ added in v0.21.0
func (b *EmbeddedBlockBridge) ValidateEmbeddedBlocks(ctx context.Context, locale string, blocks []map[string]any, mode content.EmbeddedBlockValidationMode) error
ValidateEmbeddedBlocks validates embedded blocks against their schemas.
type EmbeddedBlockBridgeOption ¶ added in v0.21.0
type EmbeddedBlockBridgeOption func(*EmbeddedBlockBridge)
EmbeddedBlockBridgeOption customises the embedded blocks bridge.
func WithEmbeddedBlocksClock ¶ added in v0.21.0
func WithEmbeddedBlocksClock(clock func() time.Time) EmbeddedBlockBridgeOption
WithEmbeddedBlocksClock overrides the clock used for synthetic timestamps.
func WithEmbeddedBlocksContentRepository ¶ added in v0.21.0
func WithEmbeddedBlocksContentRepository(repo content.ContentRepository) EmbeddedBlockBridgeOption
WithEmbeddedBlocksContentRepository wires a content repository for backfill/reporting.
func WithEmbeddedBlocksDefaultLocale ¶ added in v0.21.0
func WithEmbeddedBlocksDefaultLocale(locale string) EmbeddedBlockBridgeOption
WithEmbeddedBlocksDefaultLocale overrides the locale used as base for structure.
func WithEmbeddedBlocksDefaultRegion ¶ added in v0.21.0
func WithEmbeddedBlocksDefaultRegion(region string) EmbeddedBlockBridgeOption
WithEmbeddedBlocksDefaultRegion overrides the region used for embedded blocks.
func WithEmbeddedBlocksLogger ¶ added in v0.21.0
func WithEmbeddedBlocksLogger(logger interfaces.Logger) EmbeddedBlockBridgeOption
WithEmbeddedBlocksLogger overrides the logger used by the bridge.
func WithEmbeddedBlocksTranslationReader ¶ added in v0.21.0
func WithEmbeddedBlocksTranslationReader(reader content.ContentTranslationReader) EmbeddedBlockBridgeOption
WithEmbeddedBlocksTranslationReader overrides the translation reader used for hydration.
type IDGenerator ¶
type InstanceRepository ¶
type InstanceRepository interface {
Create(ctx context.Context, instance *Instance) (*Instance, error)
GetByID(ctx context.Context, id uuid.UUID) (*Instance, error)
ListByPage(ctx context.Context, pageID uuid.UUID) ([]*Instance, error)
ListGlobal(ctx context.Context) ([]*Instance, error)
ListByDefinition(ctx context.Context, definitionID uuid.UUID) ([]*Instance, error)
Update(ctx context.Context, instance *Instance) (*Instance, error)
Delete(ctx context.Context, id uuid.UUID) error
}
InstanceRepository exposes persistence operations for block instances.
func NewMemoryInstanceRepository ¶
func NewMemoryInstanceRepository() InstanceRepository
NewMemoryInstanceRepository constructs an "in memory" instance repository.
type InstanceVersion ¶
type InstanceVersion = cmsblocks.InstanceVersion
type InstanceVersionRepository ¶
type InstanceVersionRepository interface {
Create(ctx context.Context, version *InstanceVersion) (*InstanceVersion, error)
ListByInstance(ctx context.Context, instanceID uuid.UUID) ([]*InstanceVersion, error)
GetVersion(ctx context.Context, instanceID uuid.UUID, number int) (*InstanceVersion, error)
GetLatest(ctx context.Context, instanceID uuid.UUID) (*InstanceVersion, error)
Update(ctx context.Context, version *InstanceVersion) (*InstanceVersion, error)
}
InstanceVersionRepository exposes persistence operations for block instance versions.
func NewMemoryInstanceVersionRepository ¶
func NewMemoryInstanceVersionRepository() InstanceVersionRepository
NewMemoryInstanceVersionRepository constructs an "in memory" instance version repository.
type MigrationFunc ¶ added in v0.21.0
MigrationFunc transforms a block payload between schema versions.
type MigrationStep ¶ added in v0.21.0
type MigrationStep struct {
From string
To string
Apply MigrationFunc
}
MigrationStep describes a single block schema migration hop.
type Migrator ¶ added in v0.21.0
type Migrator struct {
// contains filtered or unexported fields
}
Migrator applies ordered migration steps for block schemas.
func NewMigrator ¶ added in v0.21.0
func NewMigrator() *Migrator
NewMigrator constructs an empty block schema migrator.
type NotFoundError ¶
NotFoundError is returned when a block resource cannot be located.
func (*NotFoundError) Error ¶
func (e *NotFoundError) Error() string
type PublishInstanceDraftRequest ¶
type PublishInstanceDraftRequest = cmsblocks.PublishInstanceDraftRequest
type RegisterDefinitionInput ¶
type RegisterDefinitionInput = cmsblocks.RegisterDefinitionInput
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry stores versioned block schema definitions and migrations.
func NewRegistry ¶
func NewRegistry() *Registry
NewRegistry constructs an empty block schema registry.
func (*Registry) Latest ¶ added in v0.21.0
func (r *Registry) Latest(name string) (RegisterDefinitionInput, bool)
Latest returns the latest registered schema definition for a name.
func (*Registry) List ¶
func (r *Registry) List() []RegisterDefinitionInput
List returns the latest version of each registered definition.
func (*Registry) ListAllVersions ¶ added in v0.21.0
func (r *Registry) ListAllVersions() []RegisterDefinitionInput
ListAllVersions returns every registered definition version.
func (*Registry) ListVersions ¶ added in v0.21.0
func (r *Registry) ListVersions(name string) []RegisterDefinitionInput
ListVersions returns all versions registered for a definition name.
func (*Registry) Register ¶
func (r *Registry) Register(input RegisterDefinitionInput)
Register records a versioned schema definition. The latest version is exposed via List().
func (*Registry) RegisterMigration ¶ added in v0.21.0
func (r *Registry) RegisterMigration(name, from, to string, fn MigrationFunc) error
RegisterMigration adds a migration step for a block definition.
type RestoreInstanceVersionRequest ¶
type RestoreInstanceVersionRequest = cmsblocks.RestoreInstanceVersionRequest
type Service ¶
func NewService ¶
func NewService(defRepo DefinitionRepository, instRepo InstanceRepository, trRepo TranslationRepository, opts ...ServiceOption) Service
type ServiceOption ¶
type ServiceOption func(*service)
func WithActivityEmitter ¶ added in v0.5.0
func WithActivityEmitter(emitter *activity.Emitter) ServiceOption
WithActivityEmitter wires the activity emitter used for activity records.
func WithClock ¶
func WithClock(clock func() time.Time) ServiceOption
func WithDefaultEnvironmentKey ¶ added in v0.23.1
func WithDefaultEnvironmentKey(key string) ServiceOption
WithDefaultEnvironmentKey overrides the default environment key.
func WithDefinitionSlugNormalizer ¶ added in v0.23.1
func WithDefinitionSlugNormalizer(normalizer slug.Normalizer) ServiceOption
WithDefinitionSlugNormalizer overrides the slug normalizer used by block definitions.
func WithDefinitionVersionRepository ¶ added in v0.21.0
func WithDefinitionVersionRepository(repo DefinitionVersionRepository) ServiceOption
WithDefinitionVersionRepository wires the repository used for block definition version persistence.
func WithEnvironmentService ¶ added in v0.23.1
func WithEnvironmentService(envSvc cmsenv.Service) ServiceOption
WithEnvironmentService wires the environment service for env resolution.
func WithIDGenerator ¶
func WithIDGenerator(generator IDGenerator) ServiceOption
func WithInstanceVersionRepository ¶
func WithInstanceVersionRepository(repo InstanceVersionRepository) ServiceOption
WithInstanceVersionRepository wires the repository used for instance version persistence.
func WithMediaService ¶
func WithMediaService(mediaSvc media.Service) ServiceOption
WithMediaService wires the media resolution helper used to enrich translations.
func WithRegistry ¶
func WithRegistry(reg *Registry) ServiceOption
func WithRequireActiveEnvironment ¶ added in v0.23.1
func WithRequireActiveEnvironment(required bool) ServiceOption
WithRequireActiveEnvironment blocks operations on inactive environments.
func WithRequireExplicitEnvironment ¶ added in v0.23.1
func WithRequireExplicitEnvironment(required bool) ServiceOption
WithRequireExplicitEnvironment enforces explicit environment selection.
func WithRequireTranslations ¶ added in v0.2.0
func WithRequireTranslations(required bool) ServiceOption
WithRequireTranslations toggles whether at least one translation must remain attached to an instance.
func WithSchemaMigrator ¶ added in v0.21.0
func WithSchemaMigrator(migrator *Migrator) ServiceOption
WithSchemaMigrator wires the migration runner used for block schema upgrades.
func WithShortcodeService ¶ added in v0.2.0
func WithShortcodeService(svc interfaces.ShortcodeService) ServiceOption
WithShortcodeService wires the shortcode renderer used to process translation content.
func WithTranslationState ¶ added in v0.20.0
func WithTranslationState(state *translationconfig.State) ServiceOption
WithTranslationState wires a shared, runtime-configurable translation state.
func WithTranslationsEnabled ¶ added in v0.20.0
func WithTranslationsEnabled(enabled bool) ServiceOption
WithTranslationsEnabled toggles translation handling entirely.
func WithVersionRetentionLimit ¶
func WithVersionRetentionLimit(limit int) ServiceOption
WithVersionRetentionLimit constrains how many versions are retained per instance.
func WithVersioningEnabled ¶
func WithVersioningEnabled(enabled bool) ServiceOption
WithVersioningEnabled toggles versioning workflows for block instances.
type Translation ¶
type Translation = cmsblocks.Translation
type TranslationRepository ¶
type TranslationRepository interface {
Create(ctx context.Context, translation *Translation) (*Translation, error)
GetByInstanceAndLocale(ctx context.Context, instanceID uuid.UUID, localeID uuid.UUID) (*Translation, error)
ListByInstance(ctx context.Context, instanceID uuid.UUID) ([]*Translation, error)
Update(ctx context.Context, translation *Translation) (*Translation, error)
Delete(ctx context.Context, id uuid.UUID) error
}
TranslationRepository exposes persistence operations for block translations.
func NewMemoryTranslationRepository ¶
func NewMemoryTranslationRepository() TranslationRepository
NewMemoryTranslationRepository constructs an "in memory" translation repository.
type UpdateDefinitionInput ¶ added in v0.2.0
type UpdateDefinitionInput = cmsblocks.UpdateDefinitionInput
type UpdateInstanceInput ¶ added in v0.2.0
type UpdateInstanceInput = cmsblocks.UpdateInstanceInput
type UpdateTranslationInput ¶ added in v0.2.0
type UpdateTranslationInput = cmsblocks.UpdateTranslationInput